0. display函数
使用 泛型,定义打印函数。
template <typename Container>
void display(Container& con) {
for (auto& elem : con) {
cout << elem << " ";
}
cout << endl;
}
1. 初始化
list<int> number = {1,2,3,4,5}; // { } 初始化
list<int> number2(10,5); // 10是count, 5是数值,声明10个5。
list<int> number3(number); //以number为源,初始化number3。
list<int> number4(number2.begin(), number2.end()); // 以两个迭代器位置创建。
2. splice 用法
将一list的部分或全部移动到另一list中。
// 将 number2 中内容 移到 number的 it 位置。
list<int> number = {1, 3, 9, 4};
list<int> number2 = {11, 33, 55};
cout << endl << "splice number2 to number." << endl;
list<int>::iterator it = number.begin();
++it;
number.splice(it, number2);
//将number3 中it3的内容移到 number的 it 位置。
cout << endl << "splice from number3 it3 iterator index to number it." << endl;
list<int> number3 = {100, 200, 300};
list<int>::iterator it3 = number3.begin();
it3++;
it = number.begin();
it++;
number.splice(it, number3, it3);
display(number);
display(number3);
//将number3 中it2 到 it3的内容移到 number的 it 位置。
cout << endl << "splice number3 fron it2 to it3 , to number it" << endl;
auto it2 = number3.begin();
it3 = number3.end();
it3--;
it = number.begin();
it++;
number.splice(it, number3, it2, it3);
display(number);
display(number3);
// splice number 自身, 容易出bug, 范围问题。
cout << endl << "splice number self" << endl;
auto it4 = number.begin();
++it4;
++it4;
cout << "*it4 = " << *it4 << endl;
auto it5 = number.begin();
it5++;
it5++;
it5++;
cout << "*it5 = " << *it5 << endl;
number.splice(it4, number, it5);
// number.splice(it4, number, it4, it5); // bug
display(number);
标签:cout,list,number,用法,number2,number3,it3
From: https://www.cnblogs.com/zxinlog/p/17570277.html