在C++编程中,标准库提供了丰富的数据结构,这些数据结构可以帮助我们更高效地处理数据。本文将带你轻松掌握C++标准库中常见的几种数据结构及其代码实现。
1. 向量(std::vector)
向量是C++标准库中的一种动态数组,它可以自动调整大小以适应数据的增加或减少。
代码示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
// 向向量中添加元素
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
// 遍历向量
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " ";
}
std::cout << std::endl;
return 0;
}
2. 栈(std::stack)
栈是一种后进先出(LIFO)的数据结构,元素只能从顶部添加或删除。
代码示例:
#include <iostream>
#include <stack>
int main() {
std::stack<int> stk;
// 向栈中添加元素
stk.push(1);
stk.push(2);
stk.push(3);
// 从栈中删除元素
while (!stk.empty()) {
std::cout << stk.top() << " ";
stk.pop();
}
std::cout << std::endl;
return 0;
}
3. 队列(std::queue)
队列是一种先进先出(FIFO)的数据结构,元素只能从尾部添加,从头部删除。
代码示例:
#include <iostream>
#include <queue>
int main() {
std::queue<int> que;
// 向队列中添加元素
que.push(1);
que.push(2);
que.push(3);
// 从队列中删除元素
while (!que.empty()) {
std::cout << que.front() << " ";
que.pop();
}
std::cout << std::endl;
return 0;
}
4. 优先队列(std::priority_queue)
优先队列是一种基于堆的数据结构,元素按照优先级排序。
代码示例:
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
// 向优先队列中添加元素
pq.push(3);
pq.push(1);
pq.push(2);
// 从优先队列中删除元素
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
std::cout << std::endl;
return 0;
}
5. 标准散列表(std::unordered_map)
散列表是一种基于哈希表的数据结构,用于快速查找和插入数据。
代码示例:
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> umap;
// 向散列表中添加元素
umap[1] = "one";
umap[2] = "two";
umap[3] = "three";
// 从散列表中查找元素
for (const auto& pair : umap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
通过以上示例,你已成功掌握了C++标准库中常见的几种数据结构的代码实现。希望这些知识能帮助你在编程实践中更加得心应手。
