📅  最后修改于: 2023-12-03 14:39:59.173000             🧑  作者: Mango
在C++中,集装箱运输是指用于存储和传输大量数据的容器类。它们提供了许多不同的方法来访问和操作这些数据。在本文中,我们将介绍C++中一些常用的集装箱类。
vector
是一个动态数组,可以根据需要自动增长或缩小。它提供了随机访问和在末尾插入或删除元素的O(1)复杂度。以下是一些常见的用法:
#include <vector>
using namespace std;
int main() {
// 创建一个空的vector
vector<int> v;
// 在末尾添加元素
v.push_back(1);
v.push_back(2);
v.push_back(3);
// 遍历vector
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
} // 输出: 1 2 3
}
deque
是一个双端队列,类似于vector
,但可以在前面或后面添加或删除元素。以下是一些常见的用法:
#include <deque>
using namespace std;
int main() {
// 创建一个空的deque
deque<int> d;
// 在末尾和前面添加元素
d.push_back(1);
d.push_front(2);
d.push_back(3);
// 遍历deque
for (int i = 0; i < d.size(); i++) {
cout << d[i] << " ";
} // 输出: 2 1 3
}
list
是一个双向链表,可以在任意位置添加或删除元素。它提供了与vector
和deque
不同的迭代器。以下是一些常见的用法:
#include <list>
using namespace std;
int main() {
// 创建一个空的list
list<int> l;
// 在末尾和前面添加元素
l.push_back(1);
l.push_front(2);
l.push_back(3);
// 遍历list
for (auto it = l.begin(); it != l.end(); it++) {
cout << *it << " ";
} // 输出: 2 1 3
}
set
是一个没有重复值的红黑树,可以高效地查找、插入和删除元素。以下是一些常见的用法:
#include <set>
using namespace std;
int main() {
// 创建一个空的set
set<int> s;
// 插入元素
s.insert(1);
s.insert(2);
s.insert(3);
// 遍历set
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it << " ";
} // 输出: 1 2 3
}
map
是一个键值对的红黑树,可以高效地查找、插入和删除元素。以下是一些常见的用法:
#include <map>
using namespace std;
int main() {
// 创建一个空的map
map<string, int> m;
// 插入元素
m["apple"] = 1;
m["banana"] = 2;
m["cherry"] = 3;
// 遍历map
for (auto it = m.begin(); it != m.end(); it++) {
cout << it->first << ": " << it->second << endl;
} // 输出:
// apple: 1
// banana: 2
// cherry: 3
}
在C++中,以下是一些常用的集装箱类:
vector
:动态数组,随机访问和O(1)的末尾插入/删除。deque
:双端队列,类似于vector
,可以在前面或后面添加/删除元素。list
:双向链表,可以在任意位置添加/删除元素。set
:红黑树,不存在重复值,可以高效查找、插入和删除元素。map
:键值对的红黑树,可以高效查找、插入和删除元素。根据实际需求选择不同的集装箱类可提高代码效率,减少调试时间。