C++Primer-Vector
时间:2010-08-05 来源:Forge09151111
#include <iostream>
#include <vector>
using namespace std; int main() {
vector<string> svec(5);//初始化Vector
string static temp = "";
vector<string>::const_iterator iter = svec.begin();//这里定义一个迭代器
for(int i=0; i<5; i++) {//初始化vector
cout<<"Input foods and price"<<endl;
cin>>temp;
svec.push_back(temp);
}
for(iter = svec.begin(); iter != svec.end(); ++iter) {
cout<<*iter<<endl;
}
svec.push_back("Eatting!");//这里在迭代后加入一个元素,这样再使用迭代器会出错,应为vector的长度已经改变
return 0;
}
1.Vector是动态的,这取决于它可以任意添加元素,所以在任何语句中,尽量使用size成员函数判定。 2.Vector可以使用迭代器(iterator)时, end()只能用于判定, 应为它指向尾元素的后一个元素(即不存在的)。 3.迭代器使用*解引用操作符来访问所指向的元素,但是迭代器是const_iterator属性时, 任何对试图改变 迭代器访问的内容都是禁止的。相反当改变const属性的iterator是合法的,但是无法++;
#include <vector>
using namespace std; int main() {
vector<string> svec(5);//初始化Vector
string static temp = "";
vector<string>::const_iterator iter = svec.begin();//这里定义一个迭代器
for(int i=0; i<5; i++) {//初始化vector
cout<<"Input foods and price"<<endl;
cin>>temp;
svec.push_back(temp);
}
for(iter = svec.begin(); iter != svec.end(); ++iter) {
cout<<*iter<<endl;
}
svec.push_back("Eatting!");//这里在迭代后加入一个元素,这样再使用迭代器会出错,应为vector的长度已经改变
return 0;
}
1.Vector是动态的,这取决于它可以任意添加元素,所以在任何语句中,尽量使用size成员函数判定。 2.Vector可以使用迭代器(iterator)时, end()只能用于判定, 应为它指向尾元素的后一个元素(即不存在的)。 3.迭代器使用*解引用操作符来访问所指向的元素,但是迭代器是const_iterator属性时, 任何对试图改变 迭代器访问的内容都是禁止的。相反当改变const属性的iterator是合法的,但是无法++;
相关阅读 更多 +