在 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):当您需要表示和处理复杂的关系网络时,请选择图。图可以表示实体之间的连接关系,如社交网络、交通网络等。图通常使用邻接矩阵或邻接表来表示。
在选择数据结构时,请考虑以下因素: