標籤:div fstream prime pac tor 而且 primer begin 初始化
練習9.11
1 #include <iostream> 2 #include <vector> 3 #include <string> 4 5 using namespace std; 6 7 int main() 8 { 9 string example("Testing!");10 11 vector<string> vec1; 12 vec1.push_back(example);13 14 vector<string> vec2(vec1);15 16 vector<string> vec3 = vec2;17 18 vector<string> vec4{"This","is","a","testing!"};19 20 vector<string> vec5={"This","is","a","testing!"};21 22 auto iter1 = vec5.begin();23 auto iter2 = vec5.end();24 vector<string> vec6(iter1,iter2);25 26 for(auto i = 0; i!= vec1.size(); ++i)27 cout << vec1[0] << endl;28 29 for(auto i = 0; i != vec2.size(); ++i)30 cout << vec2[0] << endl;31 32 for(auto i = 0; i != vec3.size(); ++i)33 cout << vec3[0] << " ";34 cout << endl;35 36 for(auto i = 0; i != vec4.size(); ++i)37 cout << vec4[i] << " ";38 cout << endl;39 40 for(auto i = 0; i != vec5.size(); ++i)41 cout << vec5[i] << " ";42 cout << endl;43 44 for(auto i = 0; i != vec6.size(); ++i)45 cout << vec6[i] << " ";46 cout << endl;47 return 0;48 }
練習9.12
接受兩個迭代器的拷貝建構函式可以將一個容器內的子序列進行拷貝,而接收一個容器建立其拷貝的建構函式拷貝的是整個容器所有的元素。
而且為了建立一個容器為另外一個容器的拷貝,兩個容器的類型及其元素類型必須匹配,當傳遞迭代器參數來拷貝一個範圍時,就不要求容器類型是相同的了,新容器和原容器中的元素類型也可以不同,只要能將拷貝的元素轉換為要初始化的容器的元素類型即可;
練習9.13
1 #include <iostream> 2 #include <fstream> 3 #include <sstream> 4 #include <vector> 5 #include <list> 6 #include <iterator> 7 8 using namespace std; 9 10 int main()11 {12 list<int> li{ 1,2,3,4,5,6 };13 vector<int> li1{ 10,9,8,7,6,5 };14 vector<int>::iterator it = li1.begin();15 vector<int>::iterator it1 = li1.end();16 vector<double> num0(it, it1);17 vector<double> num(li.begin(), li.end());18 for (auto c : num0)19 cout << c << " ";20 for (auto c : num)21 cout << c << endl;22 system("pause");23 return 0;24 }
C++primer 9.2.4節練習