vector

xiaoxiao2022-06-11  9

vector
1 生成构造
// constructing vectors #include <iostream> #include <vector> int main () { // constructors used in the same order as described above: std::vector<int> first; // empty vector of ints std::vector<int> second (4,100); // four ints with value 100 std::vector<int> third (second.begin(),second.end()); // iterating through second std::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}; std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) ); std::cout << "The contents of fifth are:"; for (std::vector<int>::iterator it = fifth.begin(); it != fifth.end(); ++it) std::cout << ' ' << *it; std::cout << '\n'; //fifth=16 2 77 29 return 0; } std::vector<int> foo (3,0); std::vector<int> bar (5,0); bar = foo; foo = std::vector<int>(); std::cout << "Size of foo: " << int(foo.size()) << '\n';//0 std::cout << "Size of bar: " << int(bar.size()) << '\n';//3
2 操作
2.1 大小和容量
#include <iostream> #include <vector> int main () { std::vector<int> myvector; for (int i=1; i<=5; i++) myvector.push_back(i); //capacity std::cout<<myvector.size(); //return size of 5 myvector.resize(9); //change size become 9 std::cout<<myvector.empty();//return 0,it is not empty myvector.reserve(100); //change capacity to 100 std::cout<<myvector.capacity(); myvector.shrink_to_fit(); //let size equality capacity ,now capacity is 9 return 0; }
2.2 比较
2.3 find
2.4 截取部分
2.5 增,插,删,改
#include <iostream> #include <vector> int main () { std::vector<int> myvector; for (int i=1; i<=5; i++) myvector.push_back(i); //modify access myvector.assign(3,100); //myvector={100,100,100} reinit elemnet myvector.push_back(1); //myvector={100,100,100,1} add on last myvector.pop_back(); //myvector={100,100,100} delete on last,return last element myvector.insert(myvector.begin()+2,200); //200 at 3th element ,myvector={100,100,200,100} int ints[]={1,1,1}; myvector.insert(iti,ints,ints+3);//myvector={100,100,1,1,1,200,100} myvector.erase(myvector.begin()+2);//myvector={100,100,1,1,200,100} myvector.erase(myvector.begin()+2,myvector.begin()+5);//myvector={100,100,100} myvector.clear(); //clear myvector={} return 0; }
2.6迭代器
//begin() and end() int main () { std::vector<int> myvector; for (int i=1; i<=5; i++) myvector.push_back(i); std::cout << "myvector contains:"; for (std::vector<int>::iterator it = myvector.begin() ; it != myvector.end(); ++it) std::cout << ' ' << *it;//1 2 3 4 5 std::cout << '\n'; return 0; } //rbegin() and rend() #include <iostream> #include <vector> int main () { std::vector<int> myvector; for (int i=1; i<=5; i++) myvector.push_back(i); std::cout << "myvector contains:"; for (std::vector<int>::reverse_iterator rit = myvector.rbegin() ; rit != myvector.rend(); ++rit) std::cout << ' ' << *rit;//5 4 3 2 1 std::cout << '\n'; return 0; } //可以使用auto #include <iostream> #include <vector> int main () { std::vector<int> myvector; for (int i=1; i<=5; i++) myvector.push_back(i); std::cout << "myvector contains:"; for (auto cit = myvector.cbegin() ; cit != myvector.cend(); ++cit)//can crbegin() 5 4 3 2 1 std::cout << ' ' << *cit;//5 4 3 2 1 std::cout << '\n'; return 0; }
2.7取值和位置
#include <iostream> #include <vector> int main () { std::vector<int> myvector; for (int i=1; i<=5; i++) myvector.push_back(i); //element access int intger1=myvector[2]; //operator[] ,intger1=2 std::cout<<myvector.at(2); //output 2 std::cout<<myvector.back(); //last element 5 std::cout<<myvector.front(); //first element 1 int *p=myvector.data(); //p=&myvector[0] *p=10;p[2]=30; //now myvector={10,2,30,4,5} return 0; }
2.8其他swap
// swap (vector overload) #include <iostream> #include <vector> main () { unsigned int i; std::vector<int> foo (3,100); // three ints with a value of 100 std::vector<int> bar (5,200); // five ints with a value of 200 foo.swap(bar);//foo={200,200,200,200,200} and bar={100,100,100} return 0; }
转载请注明原文地址: https://www.6miu.com/read-4931501.html

最新回复(0)