给vector对象添加元素的方法
#include<iostream> #include<vector> using namespace std; int main() { //初始化10个元素,每个值都为0 vector<int> fvec(10); //输出 for(vector<int>::size_type ix=0;ix!=fvec.size();ix++) cout<<fvec[ix]; cout<<endl; //下标法赋值 0-9 for(vector<int>::size_type ix=0;ix!=fvec.size();ix++) fvec[ix]=ix; //输出 for(vector<int>::size_type ix=0;ix!=fvec.size();ix++) cout<<fvec[ix]; cout<<endl; return 0; }
从上面可以看出,如果想要用下标法添加或者输出元素,数据的存储空间必须存在,无法动态的添加元素。
动态添加元素的方法,是用vector对象的方法:push_back()
#include<iostream> #include<vector> #include <string> using namespace std; int main() { //只有一个对象一个值 vector<int> ivec; vector<string> strvec; //现在必须动态添加元素 for(vector<int>::size_type ix=0;ix!=10;ix++) ivec.push_back(ix); for(vector<int>::size_type ix=0;ix!=ivec.size();ix++) cout<<ivec[ix]; cout<<endl; string word; while(cin >> word) { strvec.push_back(word); } for(vector<int>::size_type ix=0;ix!=strvec.size();ix++) cout<<strvec[ix]<<endl; return 0; }
注意:字符串输入结束符为 ctrl+z 回车。
使用迭代器:
#include<iostream> #include<vector> using namespace std; int main() { vector<int> ivec(10); //定义迭代器类型 vector<int>::iterator iter; vector<int>::size_type ix; //现在必须动态添加元素 for(iter=ivec.begin(),ix=0;iter!=ivec.end();iter++,ix++) *iter=ix; //输出 for(vector<int>::size_type ix=0;ix!=ivec.size();ix++) cout<<ivec[ix]; cout<<endl; return 0; }