ubuntu

Ubuntu C++容器类怎么选

小樊
51
2025-06-09 21:12:22
栏目: 编程语言

在Ubuntu系统中选择C++容器类时,需要考虑多个因素,包括性能、内存使用、易用性以及特定需求。以下是一些常用的C++容器类及其特点,可以帮助你做出选择:

1. vector

2. list

3. deque

4. stack

5. queue

6. priority_queue

7. unordered_map / unordered_set

8. map / set

选择建议:

示例代码:

#include <iostream>
#include <vector>
#include <list>
#include <deque>
#include <stack>
#include <queue>
#include <unordered_map>
#include <map>

int main() {
    // vector example
    std::vector<int> vec = {1, 2, 3, 4, 5};
    std::cout << "Vector: ";
    for (int i : vec) {
        std::cout<< i << " ";
    }
    std::cout << std::endl;

    // list example
    std::list<int> lst = {1, 2, 3, 4, 5};
    std::cout << "List: ";
    for (int i : lst) {
        std::cout<< i << " ";
    }
    std::cout << std::endl;

    // deque example
    std::deque<int> deq = {1, 2, 3, 4, 5};
    std::cout << "Deque: ";
    for (int i : deq) {
        std::cout<< i << " ";
    }
    std::cout << std::endl;

    // stack example
    std::stack<int> stk;
    stk.push(1);
    stk.push(2);
    stk.push(3);
    std::cout << "Stack: ";
    while (!stk.empty()) {
        std::cout << stk.top() << " ";
        stk.pop();
    }
    std::cout << std::endl;

    // queue example
    std::queue<int> que;
    que.push(1);
    que.push(2);
    que.push(3);
    std::cout << "Queue: ";
    while (!que.empty()) {
        std::cout << que.front() << " ";
        que.pop();
    }
    std::cout << std::endl;

    // unordered_map example
    std::unordered_map<std::string, int> ump = {{"one", 1}, {"two", 2}};
    std::cout << "Unordered Map: ";
    for (const auto& pair : ump) {
        std::cout << pair.first << ": " << pair.second << " ";
    }
    std::cout << std::endl;

    // map example
    std::map<std::string, int> mp = {{"one", 1}, {"two", 2}};
    std::cout << "Map: ";
    for (const auto& pair : mp) {
        std::cout << pair.first << ": " << pair.second << " ";
    }
    std::cout << std::endl;

    return 0;
}

通过以上示例代码,你可以直观地了解不同容器的使用方法和特点。根据实际需求选择合适的容器,可以显著提高程序的性能和可维护性。

0
看了该问题的人还看了