zoukankan      html  css  js  c++  java
  • vector常用操作

    初始化和赋值

    // constructing vectors
    #include <iostream>
    #include <vector>
    using namespace std;

    int main ()
    {
    unsigned int i;

    // constructors used in the same order as described above:
    vector<int> first; // empty vector of ints
    vector<int> second (4,100); // four ints with value 100
    vector<int> third (second.begin(),second.end()); // iterating through second
    vector<int> fourth (third); // a copy of third

    // the iterator constructor can also be used to construct from arrays:
    int myints[] = {16,2,77,29};
    vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );

    cout << "The contents of fifth are:";
    for (i=0; i < fifth.size(); i++)
    cout << " " << fifth[i];

    cout << endl;

    return 0;
    }

    遍历

    // vector::operator[]
    #include <iostream>
    #include <vector>
    using namespace std;

    int main ()
    {
    vector<int> myvector (10); // 10 zero-initialized elements
    unsigned int i;

    vector<int>::size_type sz = myvector.size();

    // assign some values:
    for (i=0; i<sz; i++) myvector[i]=i;

    // reverse vector using operator[]:
    for (i=0; i<sz/2; i++)
    {
    int temp;
    temp = myvector[sz-1-i];
    myvector[sz-1-i]=myvector[i];
    myvector[i]=temp;
    }

    cout << "myvector contains:";
    for (i=0; i<sz; i++)
    cout << " " << myvector[i];

    cout << endl;

    return 0;
    }

    追加

    // vector::push_back
    #include <iostream>
    #include <vector>
    using namespace std;

    int main ()
    {
    vector<int> myvector;
    int myint;

    cout << "Please enter some integers (enter 0 to end):\n";

    do {
    cin >> myint;
    myvector.push_back (myint);
    } while (myint);

    cout << "myvector stores " << (int) myvector.size() << " numbers.\n";

    return 0;
    }

    插入

    // inserting into a vector
    #include <iostream>
    #include <vector>
    using namespace std;

    int main ()
    {
    vector<int> myvector (3,100);
    vector<int>::iterator it;

    it = myvector.begin();
    it = myvector.insert ( it , 200 );

    myvector.insert (it,2,300);

    // "it" no longer valid, get a new one:
    it = myvector.begin();

    vector<int> anothervector (2,400);
    myvector.insert (it+2,anothervector.begin(),anothervector.end());

    int myarray [] = { 501,502,503 };
    myvector.insert (myvector.begin(), myarray, myarray+3);

    cout << "myvector contains:";
    for (it=myvector.begin(); it<myvector.end(); it++)
    cout << " " << *it;
    cout << endl;

    return 0;
    }

    删除

    // erasing from vector
    #include <iostream>
    #include <vector>
    using namespace std;

    int main ()
    {
    unsigned int i;
    vector<unsigned int> myvector;

    // set some values (from 1 to 10)
    for (i=1; i<=10; i++) myvector.push_back(i);

    // erase the 6th element
    myvector.erase (myvector.begin()+5);

    // erase the first 3 elements:
    myvector.erase (myvector.begin(),myvector.begin()+3);

    cout << "myvector contains:";
    for (i=0; i<myvector.size(); i++)
    cout << " " << myvector[i];
    cout << endl;

    return 0;
    }

    清空

    // clearing vectors
    #include <iostream>
    #include <vector>
    using namespace std;

    int main ()
    {
    unsigned int i;
    vector<int> myvector;
    myvector.push_back (100);
    myvector.push_back (200);
    myvector.push_back (300);

    cout << "myvector contains:";
    for (i=0; i<myvector.size(); i++) cout << " " << myvector[i];

    myvector.clear();
    myvector.push_back (1101);
    myvector.push_back (2202);

    cout << "\nmyvector contains:";
    for (i=0; i<myvector.size(); i++) cout << " " << myvector[i];

    cout << endl;

    return 0;
    }

    更多操作

        参考 http://www.cplusplus.com/reference/stl/vector/








  • 相关阅读:
    [CERC2016]机棚障碍 Hangar Hurdles(kruskal重构树+树上倍增)
    jzoj4313 电话线铺设(最小生成树+最近公共祖先)
    POJ3233 Matrix Power Series(快速幂求等比矩阵和)
    【模版】分治法求平面最近点对
    [HNOI2009]最小圈 (二分答案+负环)
    [USACO]地震 (二分答案+最优比率生成树详解)
    BZOJ:1816 [Cqoi2010]扑克牌 (贪心或二分答案)
    bzoj 4184: shallot (线段树维护线性基)
    一维点距的中位数 (分治)
    [BJWC2011]最小三角形(分治+最近点对)
  • 原文地址:https://www.cnblogs.com/ggjucheng/p/2310990.html
Copyright © 2011-2022 走看看