c++ -- 顺序容器操作
专题--顺序容器操作方法
1 /*顺序容器操作*/ 2 3 int main() 4 { 5 /*c.size()与c.max_size()*/ 6 list<int> ls={0,1,2,3,4}; 7 cout<<ls.size()<<endl; 8 cout<<ls.max_size()<<endl; 9 10 /*列表初始化*/ 11 vector<int> vc{0,1,2,3,4}; 12 cout<<vc.empty()<<endl; 13 14 /*将一个容器初始化为另一个容器的拷贝*/ 15 vector<const char*> articles={"a","an"}; 16 //错误,容器类型不一致 17 //list<string> words(articles); 18 //正确,拷贝由一个迭代器对指定的元素范围时,不要求容器类型是相同的 19 list<string> words(articles.begin(),articles.end()); 20 21 /*标准库array<T,10>,具有固定大小*/ 22 //剩余元素值初始化为0 23 array<int,5> digits={0,1,2}; 24 //区别于普通数组:可以拷贝或赋值。只要数组类型(元素类型和大小)匹配就合法。 25 //array<int,10> copy=digits; //错误,大小必须一致,大小时array类型的一部分 26 array<int,5> copy=digits; 27 for(auto mem:copy) 28 cout<<mem<<" "; 29 cout<<endl; 30 31 /*swap(c1,c2):交换操作。要求c1和c2具有相同的类型*/ 32 vector<int> vc1{5,6,7,8,9}; 33 auto it=vc1.begin(); 34 cout<<*it<<endl; //输出5 35 //swap()只交换了两个容器的内部数据结构,指向容器的迭代器、引用和指针在swap()操作后都不会失效。 36 swap(vc1,vc); 37 cout<<*it<<endl; //输出5 38 39 /*c1.assign(b,e):替换操作。*/ 40 vc1.assign(ls.begin(),ls.end()); 41 vc1.assign({10,11,12}); 42 vc1.assign(10,1); 43 44 return 0; 45 }