cb14a_c++_顺序容器的操作7_赋值与交换(swap)_vector转list
cb14a_c++_顺序容器的操作7_赋值与交换(swap)
vector数据赋值给list,
slist.assign(svec.begin(), svec.end());//这样可以转 svec->slist
c1=c2; //c2容器的数据赋值给c1
c1.swap(c2); //c1与c2数据交换
c.assign(b,e); //用于赋值,类型兼容就可以
svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转string
error C2440: “=”: 无法从“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”转换为“const char *”
slist.assign(svec.begin(), svec.end());//这样可以转
c.assign(n,t),指定数量的数据,重新进行赋值。 slist.assign(10,"nice"); 给slist 容器直接赋值10个nice.
使用assign:类型兼容即可
使用swap:类型必须相同
1 /*cb14a_c++_顺序容器的的操作7_赋值与交换(swap) 2 c1=c2; //c2容器的数据赋值给c1 3 c1.swap(c2); //c1与c2数据交换 4 c.assign(b,e); //用于赋值,类型兼容就可以 5 6 svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转string 7 error C2440: “=”: 无法从“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”转换为“const char *” 8 slist.assign(svec.begin(), svec.end());//这样可以转 9 10 c.assign(n,t),指定数量的数据,重新进行赋值。 slist.assign(10,"nice"); 给slist 容器直接赋值10个nice. 11 使用assign:类型兼容即可 12 使用swap:类型必须相同 13 14 15 */ 16 17 #include <iostream> 18 #include <vector> 19 #include <list> 20 #include <deque> 21 #include <string> 22 23 using namespace std; 24 25 int main() 26 { 27 vector<int> a; 28 vector<int> b; 29 vector<int> c; 30 31 vector<const char *> svec; 32 list<string> slist; 33 34 svec.push_back("apple"); 35 svec.push_back("big"); 36 svec.push_back("cat"); 37 38 slist.push_back("c"); 39 slist.push_back("c++"); 40 slist.push_back("java"); 41 slist.push_back("c#"); 42 43 //svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转string 44 cout << "指针转string操作:" << endl; 45 slist.assign(svec.begin(), svec.end());//这样可以转 svec->slist 46 for(list<string>::iterator iter=slist.begin();iter!=slist.end();++iter) 47 cout << *iter << endl; 48 49 cout << "给slist容器重新赋值2个nice:" << endl; 50 slist.assign(2, "nice"); 51 for (list<string>::iterator iter = slist.begin(); iter != slist.end(); ++iter) 52 cout << *iter << endl; 53 54 55 56 a.push_back(10); 57 a.push_back(20); 58 a.push_back(30); 59 a.push_back(40); 60 61 b.push_back(100); 62 b.push_back(200); 63 b.push_back(300); 64 65 c.push_back(1); 66 c.push_back(2); 67 c.push_back(3); 68 c.push_back(4); 69 c.push_back(5); 70 c.push_back(6); 71 72 73 a.swap(b); //a与b的数据交换 74 cout << "交换后,容器a的数据" << endl; 75 for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter) 76 cout << *iter << endl; 77 78 a = b; //b容器的数据赋值给a 79 80 cout << "b容器的数据赋值给a" << endl; 81 82 for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter) 83 cout << *iter << endl; 84 85 vector<int>::iterator f = c.begin(); 86 ++f; 87 ++f; 88 vector<int>::iterator e = c.end(); 89 --e; 90 cout << "把迭代器f到e之间的数据赋值给a." << endl; 91 a.assign(f, e); //把迭代器f到e之间的数据赋值给a. 92 //a.assign(c.begin(), c.end());//c的数据赋值给容器a 93 94 for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter) 95 cout << *iter << endl; 96 97 98 return 0; 99 }
欢迎讨论,相互学习。
cdtxw@foxmail.com