ubuntu

Ubuntu C++STL容器怎么选

小樊
46
2025-10-08 15:51:13
栏目: 编程语言

在Ubuntu环境下选择C++ STL(Standard Template Library)容器时,需要考虑多个因素,包括性能、内存使用、易用性以及特定需求。以下是一些常见的STL容器及其适用场景:

1. vector

2. list

3. deque

4. stack

5. queue

6. priority_queue

7. map

8. unordered_map

9. set

10. unordered_set

选择建议

示例代码

以下是一个简单的示例,展示了如何在不同场景下选择合适的容器:

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

int main() {
    // 使用vector存储动态数组
    std::vector<int> vec = {1, 2, 3, 4, 5};
    std::cout << "Vector: ";
    for (int i : vec) {
        std::cout<< i << " ";
    }
    std::cout << std::endl;

    // 使用list存储双向链表
    std::list<int> lst = {1, 2, 3, 4, 5};
    std::cout << "List: ";
    for (int i : lst) {
        std::cout<< i << " ";
    }
    std::cout << std::endl;

    // 使用deque存储双端队列
    std::deque<int> deq = {1, 2, 3, 4, 5};
    std::cout << "Deque: ";
    for (int i : deq) {
        std::cout<< i << " ";
    }
    std::cout << std::endl;

    // 使用map存储键值对
    std::map<std::string, int> mp = {{"apple", 1}, {"banana", 2}};
    std::cout << "Map: ";
    for (const auto& pair : mp) {
        std::cout << pair.first << ": " << pair.second << " ";
    }
    std::cout << std::endl;

    // 使用unordered_map存储键值对
    std::unordered_map<std::string, int> ump = {{"apple", 1}, {"banana", 2}};
    std::cout << "Unordered Map: ";
    for (const auto& pair : ump) {
        std::cout << pair.first << ": " << pair.second << " ";
    }
    std::cout << std::endl;

    return 0;
}

通过以上示例和解释,你可以根据具体需求选择合适的STL容器。

0
看了该问题的人还看了