STL——容器(deque) deque 的赋值 assign() operator=() swap()
deque 的赋值分下边4种方法:
deque.assign(beg,end);
//将[beg, end)区间中的数据拷贝赋值给本身。注意该区间是左闭右开的区间。
1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A, deqInt_B; 9 10 deqInt_A.push_back(1); 11 deqInt_A.push_back(2); 12 deqInt_A.push_back(3); 13 deqInt_A.push_back(4); 14 15 deqInt_B.assign(deqInt_A.begin(), deqInt_A.end()); 16 17 cout << "deqInt_B 中的元素为:" << endl; 18 for (deque<int>::iterator it = deqInt_B.begin(); it != deqInt_B.end(); it++) 19 { 20 cout << *it << " "; 21 } 22 23 return 0; 24 }
打印结果:
deque.assign(n,elem);
//将n个elem拷贝赋值给本身。
1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A; 9 deqInt_A.assign(4, 888); 10 11 cout << "deqInt_A 中的元素为:" << endl; 12 for (deque<int>::iterator it = deqInt_A.begin(); it != deqInt_A.end(); it++) 13 { 14 cout << *it << " "; 15 } 16 17 return 0; 18 }
打印结果:
deque& operator=(const deque &deq);
//重载等号操作符
1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A, deqint_B; 9 deqInt_A.assign(4, 888); 10 deqint_B = deqInt_A; // operator= 重载,可以直接进行赋值 11 12 cout << "deqint_B 中的元素为:" << endl; 13 for (deque<int>::iterator it = deqint_B.begin(); it != deqint_B.end(); it++) 14 { 15 cout << *it << " "; 16 } 17 18 return 0; 19 }
打印结果:
deque.swap(deq);
// 将deque与本身的元素互换
1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A, deqint_B; 9 deqInt_A.assign(4, 111); 10 deqint_B.assign(5, 222); 11 12 cout << "deqInt_A 中的元素为:" << endl; 13 for (deque<int>::iterator it = deqInt_A.begin(); it != deqInt_A.end(); it++) 14 { 15 cout << *it << " "; 16 } 17 cout << "\ndeqint_B 中的元素为:" << endl; 18 for (deque<int>::iterator it = deqint_B.begin(); it != deqint_B.end(); it++) 19 { 20 cout << *it << " "; 21 } 22 cout << "\n\nswap 进行翻转" << endl; 23 deqInt_A.swap(deqint_B); 24 cout << "deqInt_A 中的元素为:" << endl; 25 for (deque<int>::iterator it = deqInt_A.begin(); it != deqInt_A.end(); it++) 26 { 27 cout << *it << " "; 28 } 29 cout << "\ndeqint_B 中的元素为:" << endl; 30 for (deque<int>::iterator it = deqint_B.begin(); it != deqint_B.end(); it++) 31 { 32 cout << *it << " "; 33 } 34 return 0; 35 }
打印结果:
=======================================================================================================================