目录
C++ 数据结构详解
引言
数据结构是计算机科学中的一个重要概念,它决定了数据的组织和存储方式,进而影响到算法的效率和程序的性能。C++ 提供了丰富的数据结构和容器类,使得开发者可以高效地管理和操作数据。本文将详细介绍几种常见的 C++ 数据结构,并通过具体的例子来展示它们的使用方法。
1. 数组 (Array)
数组是最基本的数据结构之一,用于存储固定数量的相同类型的数据。
示例代码
#include <iostream>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
std::cout << "Array elements: ";
for (int i = 0; i < 5; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
2. 向量 (Vector)
向量是动态数组,可以自动调整大小。C++ 标准库提供了 std::vector
类。
示例代码
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "Vector elements: ";
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " ";
}
std::cout << std::endl;
// 添加元素
vec.push_back(6);
std::cout << "After adding an element: ";
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " ";
}
std::cout << std::endl;
return 0;
}
3. 链表 (List)
链表是由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。C++ 标准库提供了 std::list
类。
示例代码
#include <iostream>
#include <list>
int main() {
std::list<int> lst = {1, 2, 3, 4, 5};
std::cout << "List elements: ";
for (int val : lst) {
std::cout << val << " ";
}
std::cout << std::endl;
// 添加元素
lst.push_back(6);
std::cout << "After adding an element: ";
for (int val : lst) {
std::cout << val << " ";
}
std::cout << std::endl;
return 0;
}
4. 栈 (Stack)
栈是一种后进先出(LIFO)的数据结构。C++ 标准库提供了 std::stack
类。
示例代码
#include <iostream>
#include <stack>
int main() {
std::stack<int> stk;
// 添加元素
stk.push(1);
stk.push(2);
stk.push(3);
std::cout << "Top element: " << stk.top() << std::endl;
// 移除元素
stk.pop();
std::cout << "Top element after pop: " << stk.top() << std::endl;
return 0;
}
5. 队列 (Queue)
队列是一种先进先出(FIFO)的数据结构。C++ 标准库提供了 std::queue
类。
示例代码
#include <iostream>
#include <queue>
int main() {
std::queue<int> que;
// 添加元素
que.push(1);
que.push(2);
que.push(3);
std::cout << "Front element: " << que.front() << std::endl;
// 移除元素
que.pop();
std::cout << "Front element after pop: " << que.front() << std::endl;
return 0;
}
6. 集合 (Set)
集合是一种不允许重复元素的数据结构。C++ 标准库提供了 std::set
类。
示例代码
#include <iostream>
#include <set>
int main() {
std::set<int> s;
// 添加元素
s.insert(3);
s.insert(1);
s.insert(2);
std::cout << "Set elements: ";
for (int val : s) {
std::cout << val << " ";
}
std::cout << std::endl;
return 0;
}
7. 映射 (Map)
映射是一种键值对的数据结构,每个键对应一个值。C++ 标准库提供了 std::map
类。
示例代码
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> m;
// 添加键值对
m["apple"] = 10;
m["banana"] = 20;
m["cherry"] = 30;
std::cout << "Map elements: " << std::endl;
for (const auto& pair : m) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
标签:std,数据结构,示例,代码,C++,详解,include
From: https://blog.csdn.net/licy__/article/details/143680822