一、创建与初始化
        
          
            
            
              cpp
              复制代码
              
            
          
          #include <list>
using namespace std;
         
      
- 创建一个空 list
          
            
            
              cpp
              复制代码
              
            
          
          list<int> my_list;
         
      
- 创建一个包含 5 个元素,每个元素初始化为 0 的 list
          
            
            
              cpp
              复制代码
              
            
          
          list<int> my_list(5);
         
      
- 创建一个包含 5 个元素,每个元素初始化为 100 的 list
          
            
            
              cpp
              复制代码
              
            
          
          list<int> my_list(5, 100);
         
      
- 初始化 list
          
            
            
              cpp
              复制代码
              
            
          
          list<int> my_list = { 1, 2, 3, 4, 5 };
         
      
二、元素访问
        
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 10, 20, 30 };
	int result1 = my_list.front();
	cout << "第一个元素:" << result1 << endl;
	int result2 = my_list.back();
	cout << "最后一个元素:" << result2 << endl;
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
第一个元素:10
最后一个元素:30
         
      
三、容量判断
- 获取 list 的大小
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 10, 20, 30 };
	cout << "大小:" << my_list.size() << endl;
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
大小:3
         
      
- 获取 list 的是否为空
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 10, 20, 30 };
	cout << "是否为空:" << (my_list.empty() ? "是" : "否") << endl;
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
         
      
四、元素遍历
- 正向遍历
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 10, 20, 30 };
	for (auto it = my_list.begin(); it != my_list.end(); ++it) {
		cout << *it << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
10
20
30
         
      
- 反向遍历
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 10, 20, 30 };
	for (auto rit = my_list.rbegin(); rit != my_list.rend(); ++rit) {
		cout << *rit << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
30
20
10
         
      
- 范围 for 循环
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 10, 20, 30 };
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
10
20
30
         
      
五、添加元素
- 在末尾添加元素
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	my_list.push_back(4);
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
-----
1
2
3
4
         
      
- 在开头添加元素
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	my_list.push_front(4);
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
-----
4
1
2
3
         
      
- 在指定位置插入元素
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	auto it = my_list.begin();
	advance(it, 1); // 移动到第 2 个位置
	my_list.insert(it, 5); // 在第 2 个位置插入元素
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
-----
1
5
2
3
         
      
六、删除元素
- 删除末尾元素
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	my_list.pop_back();
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
-----
1
2
         
      
- 删除开头元素
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	my_list.pop_front();
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
-----
2
3
         
      
- 删除指定位置元素
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	auto it = my_list.begin();
	advance(it, 1); // 移动到第 2 个位置
	my_list.erase(it); // 删除第 2 个位置的元素
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
-----
1
3
         
      
- 删除(所有等于 5 的元素)元素
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3, 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	my_list.remove(3);
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
1
2
3
-----
1
2
1
2
         
      
- 清空 list
          
            
            
              cpp
              复制代码
              
            
          
          #include <iostream>
#include <list>
using namespace std;
int main() {
	list<int> my_list = { 1, 2, 3 };
	for (int val : my_list) {
		cout << val << endl;
	}
	cout << "-----" << endl;
	my_list.clear();
	for (int val : my_list) {
		cout << val << endl;
	}
	return 0;
}
         
      
        
          
            
            
              
              复制代码
              
            
          
          # 输出结果
1
2
3
-----