给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;
}
原文地址:https://www.cnblogs.com/qiangua/p/3715571.html