16.7.2【列表list容器的赋值和交换、大小操作】
16.7.2【列表list容器的赋值和交换、大小操作】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | <code-pre class = "code-pre" id= "pre-ZnQTsw" ><code-line class = "line-numbers-rows" ></code-line>#include<iostream> <code-line class = "line-numbers-rows" ></code-line>#include<cstdlib> <code-line class = "line-numbers-rows" ></code-line> using namespace std; <code-line class = "line-numbers-rows" ></code-line>#include <list> <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> /* <code-line class="line-numbers-rows"></code-line> 3.7.3 list赋值和交换 <code-line class="line-numbers-rows"></code-line> <code-line class="line-numbers-rows"></code-line> 给list容器进行赋值,以及交换list容器 <code-line class="line-numbers-rows"></code-line> <code-line class="line-numbers-rows"></code-line> assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。 <code-line class="line-numbers-rows"></code-line> assign(n, elem); //将n个elem拷贝赋值给本身。 <code-line class="line-numbers-rows"></code-line> list& operator=(const list &lst); //重载等号操作符。 <code-line class="line-numbers-rows"></code-line> swap(lst); //将lst与本身的元素互换。 <code-line class="line-numbers-rows"></code-line> <code-line class="line-numbers-rows"></code-line> 3.7.4 list大小操作 <code-line class="line-numbers-rows"></code-line> <code-line class="line-numbers-rows"></code-line> 对list容器的大小进行操作 <code-line class="line-numbers-rows"></code-line> <code-line class="line-numbers-rows"></code-line> size(); //返回容器中元素的个数 <code-line class="line-numbers-rows"></code-line> empty(); //判断容器是否为空 <code-line class="line-numbers-rows"></code-line> resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。 <code-line class="line-numbers-rows"></code-line> //如果容器变短,则末尾超出容器长度的元素被删除。 <code-line class="line-numbers-rows"></code-line> resize(num, elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。 <code-line class="line-numbers-rows"></code-line> //如果容器变短,则末尾超出容器长度的元素被删除。 <code-line class="line-numbers-rows"></code-line>*/ <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> void print_list( const list< int > & L) <code-line class = "line-numbers-rows" ></code-line>{ <code-line class = "line-numbers-rows" ></code-line> for (list< int >::const_iterator cit=L.begin(); cit!=L.end(); cit++) <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> cout << *cit << " " ; <code-line class = "line-numbers-rows" ></code-line> } <code-line class = "line-numbers-rows" ></code-line> cout << endl; <code-line class = "line-numbers-rows" ></code-line>} <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> void test373_1() <code-line class = "line-numbers-rows" ></code-line>{ <code-line class = "line-numbers-rows" ></code-line> list< int > l1; <code-line class = "line-numbers-rows" ></code-line> l1.push_back(10); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(20); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(30); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(40); <code-line class = "line-numbers-rows" ></code-line> print_list(l1); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> //赋值 <code-line class = "line-numbers-rows" ></code-line> list< int > l2; <code-line class = "line-numbers-rows" ></code-line> l2 = l1; <code-line class = "line-numbers-rows" ></code-line> print_list(l2); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> list< int > l3; <code-line class = "line-numbers-rows" ></code-line> l3.assign(l1.begin(), l1.end()); <code-line class = "line-numbers-rows" ></code-line> print_list(l3); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> list< int > l4; <code-line class = "line-numbers-rows" ></code-line> l4.assign(10, 999); <code-line class = "line-numbers-rows" ></code-line> print_list(l4); <code-line class = "line-numbers-rows" ></code-line>} <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> void test373_2() <code-line class = "line-numbers-rows" ></code-line>{ <code-line class = "line-numbers-rows" ></code-line> list< int > l1; <code-line class = "line-numbers-rows" ></code-line> l1.push_back(10); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(20); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(30); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(40); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> list< int > l2; <code-line class = "line-numbers-rows" ></code-line> l2.assign(10, 999); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> cout << "交换前:" << endl; <code-line class = "line-numbers-rows" ></code-line> print_list(l1); <code-line class = "line-numbers-rows" ></code-line> print_list(l2); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> l1.swap(l2); //互换 <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> cout << "交换后:" << endl; <code-line class = "line-numbers-rows" ></code-line> print_list(l1); <code-line class = "line-numbers-rows" ></code-line> print_list(l2); <code-line class = "line-numbers-rows" ></code-line>} <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> void test374() <code-line class = "line-numbers-rows" ></code-line>{ <code-line class = "line-numbers-rows" ></code-line> list< int > l1; <code-line class = "line-numbers-rows" ></code-line> l1.push_back(10); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(20); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(30); <code-line class = "line-numbers-rows" ></code-line> l1.push_back(40); <code-line class = "line-numbers-rows" ></code-line> print_list(l1); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> if (l1.empty()) <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> cout << "l1为空" << endl; <code-line class = "line-numbers-rows" ></code-line> } <code-line class = "line-numbers-rows" ></code-line> else <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> cout << "l1不为空" << endl; <code-line class = "line-numbers-rows" ></code-line> cout << "l1元素个数:" << l1.size() << endl; <code-line class = "line-numbers-rows" ></code-line> } <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> l1.resize(10); //新指定大小 > 原大小,默认用0填充多出来的位置 <code-line class = "line-numbers-rows" ></code-line> print_list(l1); <code-line class = "line-numbers-rows" ></code-line> l1.resize(20, 8); //新指定大小 > 原大小,指定值8填充多出来的位置 <code-line class = "line-numbers-rows" ></code-line> print_list(l1); <code-line class = "line-numbers-rows" ></code-line> l1.resize(2); //新指定大小 < 原大小,删除多出来的元素 <code-line class = "line-numbers-rows" ></code-line> print_list(l1); <code-line class = "line-numbers-rows" ></code-line>} <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> int main() <code-line class = "line-numbers-rows" ></code-line>{ <code-line class = "line-numbers-rows" ></code-line> test373_1(); <code-line class = "line-numbers-rows" ></code-line> test373_2(); <code-line class = "line-numbers-rows" ></code-line> test374(); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> system ( "pause" ); <code-line class = "line-numbers-rows" ></code-line> return 0; <code-line class = "line-numbers-rows" ></code-line>} </code-pre> |
来源:https://www.cnblogs.com/yppah/p/14755277.html