📜  C++中的集装箱运输(1)

📅  最后修改于: 2023-12-03 14:39:59.173000             🧑  作者: Mango

C++中的集装箱运输

在C++中,集装箱运输是指用于存储和传输大量数据的容器类。它们提供了许多不同的方法来访问和操作这些数据。在本文中,我们将介绍C++中一些常用的集装箱类。

vector

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

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

list是一个双向链表,可以在任意位置添加或删除元素。它提供了与vectordeque不同的迭代器。以下是一些常见的用法:

#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

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

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:键值对的红黑树,可以高效查找、插入和删除元素。

根据实际需求选择不同的集装箱类可提高代码效率,减少调试时间。