vector: 动态数组,提供快速的随机访问和尾部插入操作。
list: 双向链表,支持快速的插入和删除操作,但随机访问效率较低。
set/multiset: 基于红黑树的有序集合,不允许重复元素(multiset允许),支持快速的查找、插入和删除操作。
map/multimap: 基于红黑树的有序映射,键值对的集合,不允许重复键(multimap允许),支持快速的查找、插入和删除操作。
unordered_set/unordered_multiset:
基于哈希表的无序集合,不允许重复元素(unordered_multiset允许),支持快速的查找、插入和删除操作。unordered_map/unordered_multimap:
基于哈希表的无序映射,键值对的集合,不允许重复键(unordered_multimap允许),支持快速的查找、插入和删除操作。queue: 队列,先进先出(FIFO)的数据结构,通常使用push和pop进行入队和出队操作。
priority_queue: 优先队列,基于堆实现的数据结构,支持高效的插入和获取最值操作。
stack: 栈,后进先出(LIFO)的数据结构,通常使用push和pop进行入栈和出栈操作。
vector
push_back(): 在向量末尾添加一个元素。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
pop_back(): 删除向量末尾的元素。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
vec.pop_back();
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
size(): 返回向量中的元素个数。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
std::cout << "Size of vector: " << vec.size() << std::endl;
return 0;
}
clear(): 清空向量中的所有元素。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
vec.clear();
std::cout << "Size of vector after clear: " << vec.size() << std::endl;
return 0;
}
at(): 返回指定位置的元素,并进行边界检查。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
std::cout << "Element at index 1: " << vec.at(1) << std::endl;
return 0;
}
insert(): 在指定位置插入一个或多个元素。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
vec.insert(vec.begin() + 1, 10); // 在索引为1的位置插入元素10
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
erase(): 删除指定位置或指定范围内的元素。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
vec.erase(vec.begin() + 1); // 删除索引为1的元素
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
begin() 和 end(): 返回指向第一个元素和最后一个元素之后位置的迭代器。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}