在Ubuntu系统中选择C++容器类时,需要考虑多个因素,包括性能、内存使用、易用性以及特定需求。以下是一些常用的C++容器类及其特点,可以帮助你做出选择:
vector
;如果需要频繁插入和删除,选择list
或deque
。vector
和array
通常更节省内存。#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;
}
通过以上示例代码,你可以直观地了解不同容器的使用方法和特点。根据实际需求选择合适的容器,可以显著提高程序的性能和可维护性。