在 C++ 編程中選擇合適的數據結構取決于您要解決的問題和所需操作的效率。以下是一些建議:
#include <iostream>
#include <array>
int main() {
std::array<int, 5> numbers = {1, 2, 3, 4, 5};
for (const auto &number : numbers) {
std::cout << number << " ";
}
return 0;
}
#include <iostream>
struct Node {
int data;
Node *next;
};
int main() {
Node *head = new Node{1, nullptr};
head->next = new Node{2, nullptr};
head->next->next = new Node{3, nullptr};
Node *current = head;
while (current != nullptr) {
std::cout << current->data << " ";
current = current->next;
}
return 0;
}
#include <iostream>
#include <stack>
int main() {
std::stack<int> numbers;
numbers.push(1);
numbers.push(2);
numbers.push(3);
while (!numbers.empty()) {
std::cout << numbers.top() << " ";
numbers.pop();
}
return 0;
}
#include <iostream>
#include <queue>
int main() {
std::queue<int> numbers;
numbers.push(1);
numbers.push(2);
numbers.push(3);
while (!numbers.empty()) {
std::cout << numbers.front() << " ";
numbers.pop();
}
return 0;
}
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> ages = {{"Alice", 30}, {"Bob", 25}, {"Charlie", 35}};
for (const auto &entry : ages) {
std::cout << entry.first << ": " << entry.second << std::endl;
}
return 0;
}
樹(Tree):當您需要對數據進行分層排序或查找時,請選擇樹。常見的樹結構有二叉搜索樹(BST)、平衡二叉樹(如 AVL 樹或紅黑樹)和 B 樹等。
圖(Graph):當您需要表示和處理復雜的關系網絡時,請選擇圖。圖可以表示實體之間的連接關系,如社交網絡、交通網絡等。圖通常使用鄰接矩陣或鄰接表來表示。
在選擇數據結構時,請考慮以下因素: