在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;
}
通過以上示例代碼,你可以直觀地了解不同容器的使用方法和特點。根據實際需求選擇合適的容器,可以顯著提高程序的性能和可維護性。