温馨提示×

C++ Linux编程中如何使用容器

小樊
56
2025-06-03 14:29:11
栏目: 编程语言

在C++ Linux编程中,容器是一种非常强大的工具,它们可以帮助你管理内存、数据结构和算法。以下是一些常用的C++容器及其在Linux编程中的应用:

1. vector

  • 用途:动态数组,可以自动扩展。
  • 示例
    #include <vector>
    #include <iostream>
    
    int main() {
        std::vector<int> vec = {1, 2, 3, 4, 5};
        vec.push_back(6); // 添加元素
        for (int i : vec) {
            std::cout<< i << " ";
        }
        return 0;
    }
    

2. list

  • 用途:双向链表,支持高效的插入和删除操作。
  • 示例
    #include <list>
    #include <iostream>
    
    int main() {
        std::list<int> lst = {1, 2, 3, 4, 5};
        lst.push_back(6); // 添加元素
        for (int i : lst) {
            std::cout<< i << " ";
        }
        return 0;
    }
    

3. deque

  • 用途:双端队列,支持在两端高效地插入和删除元素。
  • 示例
    #include <deque>
    #include <iostream>
    
    int main() {
        std::deque<int> deq = {1, 2, 3, 4, 5};
        deq.push_back(6); // 添加元素到末尾
        deq.push_front(0); // 添加元素到开头
        for (int i : deq) {
            std::cout<< i << " ";
        }
        return 0;
    }
    

4. stack

  • 用途:栈,后进先出(LIFO)数据结构。
  • 示例
    #include <stack>
    #include <iostream>
    
    int main() {
        std::stack<int> stk;
        stk.push(1);
        stk.push(2);
        stk.push(3);
        while (!stk.empty()) {
            std::cout << stk.top() << " ";
            stk.pop();
        }
        return 0;
    }
    

5. queue

  • 用途:队列,先进先出(FIFO)数据结构。
  • 示例
    #include <queue>
    #include <iostream>
    
    int main() {
        std::queue<int> que;
        que.push(1);
        que.push(2);
        que.push(3);
        while (!que.empty()) {
            std::cout << que.front() << " ";
            que.pop();
        }
        return 0;
    }
    

6. priority_queue

  • 用途:优先队列,元素按照优先级排序。
  • 示例
    #include <queue>
    #include <iostream>
    
    int main() {
        std::priority_queue<int> pq;
        pq.push(3);
        pq.push(1);
        pq.push(4);
        while (!pq.empty()) {
            std::cout << pq.top() << " ";
            pq.pop();
        }
        return 0;
    }
    

7. map

  • 用途:关联数组,键值对存储。
  • 示例
    #include <map>
    #include <iostream>
    
    int main() {
        std::map<std::string, int> mp = {{"apple", 1}, {"banana", 2}};
        mp["orange"] = 3; // 添加新元素
        for (const auto& pair : mp) {
            std::cout << pair.first << ": " << pair.second << std::endl;
        }
        return 0;
    }
    

8. unordered_map

  • 用途:哈希表实现的关联数组,查找速度快。
  • 示例
    #include <unordered_map>
    #include <iostream>
    
    int main() {
        std::unordered_map<std::string, int> ump = {{"apple", 1}, {"banana", 2}};
        ump["orange"] = 3; // 添加新元素
        for (const auto& pair : ump) {
            std::cout << pair.first << ": " << pair.second << std::endl;
        }
        return 0;
    }
    

9. set

  • 用途:集合,存储唯一元素。
  • 示例
    #include <set>
    #include <iostream>
    
    int main() {
        std::set<int> st = {1, 2, 3, 4, 5};
        st.insert(6); // 添加元素
        for (int i : st) {
            std::cout<< i << " ";
        }
        return 0;
    }
    

10. unordered_set

  • 用途:哈希表实现的集合,查找速度快。
  • 示例
    #include <unordered_set>
    #include <iostream>
    
    int main() {
        std::unordered_set<int> ust = {1, 2, 3, 4, 5};
        ust.insert(6); // 添加元素
        for (int i : ust) {
            std::cout<< i << " ";
        }
        return 0;
    }
    

使用容器的一般步骤:

  1. 包含头文件:根据需要包含相应的容器头文件。
  2. 声明容器:使用合适的容器类型声明一个变量。
  3. 操作容器:使用容器的成员函数进行插入、删除、查找等操作。
  4. 遍历容器:使用迭代器或范围for循环遍历容器中的元素。

通过合理选择和使用这些容器,可以大大提高代码的效率和可读性。希望这些示例对你有所帮助!

0