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 }

 

posted @ 2017-06-26 09:10  halo_vagabond  阅读(238)  评论(0编辑  收藏  举报