C常见容器如何使用
更新时间:2023-10-17vector
vector即向量,是C++中最常用和最灵活的容器之一。它可以存储各种对象类型,且支持动态调整大小。以下是vector的定义和基本使用方法。
#include#include using namespace std; int main() { // 定义一个空的vector,存储int类型数据 vector<int> v1; // 在尾部添加元素 v1.push_back(1); v1.push_back(2); v1.push_back(3); // 遍历元素 for (int i = 0; i < v1.size(); i++) { cout << v1[i] << " "; } // 输出:1 2 3 // 在指定位置插入元素 vector<int> v2 = {4, 5, 6}; v1.insert(v1.begin() + 1, v2.begin(), v2.end()); // 遍历元素 for (int i = 0; i < v1.size(); i++) { cout << v1[i] << " "; } // 输出:1 4 5 6 2 3 // 删除指定元素 v1.erase(v1.begin() + 2); // 遍历元素 for (int i = 0; i < v1.size(); i++) { cout << v1[i] << " "; } // 输出:1 4 6 2 3 return 0; }
list
list即双向链表,是C++标准库中的另一个常用容器。与vector相比,list插入和删除元素的效率更高,因为它不需要移动其他元素。以下是list的定义和基本使用方法。
#include#include using namespace std; int main() { // 定义一个空的list,存储int类型数据 list<int> l1; // 在尾部添加元素 l1.push_back(1); l1.push_back(2); l1.push_back(3); // 遍历元素 for (list<int>::iterator it = l1.begin(); it != l1.end(); it++) { cout << *it << " "; } // 输出:1 2 3 // 在指定位置插入元素 list<int> l2 = {4, 5, 6}; l1.insert(l1.begin(), l2.begin(), l2.end()); // 遍历元素 for (list<int>::iterator it = l1.begin(); it != l1.end(); it++) { cout << *it << " "; } // 输出:4 5 6 1 2 3 // 删除指定元素 l1.erase(l1.begin()); // 遍历元素 for (list<int>::iterator it = l1.begin(); it != l1.end(); it++) { cout << *it << " "; } // 输出:5 6 1 2 3 return 0; }
map
map即映射,是C++标准库中的关联容器之一。map以键值对(key-value pair)形式存储数据,键和值可以是任何类型。以下是map的定义和基本使用方法。
#include#include
stack
stack即栈,是C++标准库中的容器之一。栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除元素。以下是stack的定义和基本使用方法。
#include总结:C++标准库提供了许多不同的容器,每个容器都有自己的优点和适用场景。vector和list都是顺序容器,前者适用于大量访问元素的情况,后者适用于频繁插入和删除元素的情况。map是关联容器,适用于需要通过键访问值的情况。stack是适用于后进先出的栈结构。在使用容器时,需要考虑到数据类型、数据量、访问模式等多个因素,选择最合适的容器才能提高代码效率和性能。#include using namespace std; int main() { // 定义一个空的stack,存储int类型数据 stack<int> s1; // 在栈顶添加元素 s1.push(1); s1.push(2); s1.push(3); // 访问栈顶元素 cout << s1.top() << endl; // 输出:3 // 删除栈顶元素 s1.pop(); // 访问栈顶元素 cout << s1.top() << endl; // 输出:2 return 0; }