list基础概念:list中的每一部分是一个Node,由三部分组成:val、next、prev(指向上一个节点的指针)
list初始化的代码,见下
- #include<iostream>
- #include<list>
- using namespace std;
- void printList(const list<int>& l) {
- for (list<int>::const_iterator it = l.begin(); it != l.end(); it++) {
- cout << *it << " ";
- }
- cout << endl;
- }
- int main() {
- // 1 默认构造函数
- list<int> l1;
- cout << "l1: ";
- printList(l1);
- // 2 初始化列表
- list<int> l2_1 = { 7,6,5,4,3 };
- cout << "l2_1: ";
- printList(l2_1);
- list<int> l2_2({ 7,5,4,3,2 });
- cout << "l2_2: ";
- printList(l2_2);
- // 3 迭代器
- list<int> l3(l2_2.begin(), l2_2.end());
- cout << "l3: ";
- printList(l3);
- // 4 全0初始化
- list<int> l4(8);
- cout << "l4: ";
- printList(l4);
- // 5 初始化a个b
- list<int> l5(5, 8);
- cout << "l5: ";
- printList(l5);
- // 6 拷贝构造函数
- list<int> l6(l2_2);
- cout << "l6: ";
- printList(l6);
- return 0;
- }
复制代码 list赋值操作,代码见下
- #include<iostream>
- #include<list>
- using namespace std;
- void printList(const list<int>& l) {
- for (list<int>::const_iterator it = l.begin(); it != l.end(); it++) {
- cout << *it << " ";
- }
- cout << endl;
- }
- int main() {
-
- list<int> l1 = { 5, 6, 7, 3, 1 };
- list<int> l2;
- // 1 =
- l2 = l1;
- printList(l2);
- // 2 assign(迭代器)
- list<int> l3;
- l3.assign(l1.begin(), l1.end());
- printList(l3);
- // 3 assign(初始化列表)
- list<int> l4;
- l4.assign({ 5, 9, 1, 2, 4 });
- printList(l4);
- // 4 assign(a, b)
- list<int> l5;
- l5.assign(5, 4);
- printList(l5);
- return 0;
- }
复制代码 list大小操作,代码见下
- #include<iostream>
- #include<list>
- using namespace std;
- void printList(const list<int>& l) {
- for (list<int>::const_iterator it = l.begin(); it != l.end(); it++) {
- cout << *it << " ";
- }
- cout << endl;
- }
- /*
- empty
- size
- resize
- */
- int main() {
-
- list<int> l1;
- cout << "l1.empty() = " << l1.empty() << endl;
- cout << "l1.size() = " << l1.size() << endl;
- l1.assign({ 4, 3, 6, 2, 1 });
- printList(l1);
- l1.resize(18);
- cout << "l1.empty() = " << l1.empty() << endl;
- cout << "l1.size() = " << l1.size() << endl;
- printList(l1);
- l1.resize(20, 6);
- cout << "l1.empty() = " << l1.empty() << endl;
- cout << "l1.size() = " << l1.size() << endl;
- printList(l1);
- l1.resize(1000);
- l1.resize(7);
- cout << "l1.empty() = " << l1.empty() << endl;
- cout << "l1.size() = " << l1.size() << endl;
- printList(l1);
- return 0;
- }
复制代码 效果见下,供理解

list数据插入,代码见下:
- #include<iostream>
- #include<list>
- using namespace std;
- void printList(const list<int>& l) {
- for (list<int>::const_iterator it = l.begin(); it != l.end(); it++) {
- cout << *it << " ";
- }
- cout << endl;
- }
- /*
- push_front
- push_back
- insert
- */
- int main() {
- list<int> l;
- //1 push_front
- l.push_front(-3);
- l.push_front(-2);
- l.push_front(-1);
- //2 push_back
- l.push_back(3);
- l.push_back(2);
- l.push_back(1);
- //3 insert(迭代器, 值)
- list<int>::iterator it = l.begin();
- it++;
-
- l.insert(it, 0);
- printList(l);
- //4 insert(迭代器, 数量, 值)
- it = l.end();
- --it;
- l.insert(it, 5, 8);
- printList(l);
- //5 insert(迭代器, 迭代器的开始位置, 迭代器的结束位置)
- it = l.begin();
- it++;
- l.insert(it, l.begin(), l.end());
- printList(l);
- return 0;
- }
复制代码 运行效果见下,便于理解
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |