1. 引言
C++ Standard Template Library (STL) 是 C++ 中非常重要的一个库,提供了各种容器、迭代器、算法等组件,极大地简化了编程工作。容器是 STL 中的核心,它提供了存储和处理数据的功能。本文将深入解析 C++ STL 容器,包括其使用技巧和实战案例。
2. STL容器概述
STL 容器主要分为以下几类:
序列容器:包括向量(vector)、列表(list)、双向链表(deque)、数组(array)等。
关联容器:包括集合(set)、多集(multiset)、映射(map)、多重映射(multimap)等。
特殊容器:包括位场容器(bitset)、宽字符容器(wstring)等。
3. 向量(vector)
向量是一种动态数组,可以高效地添加和删除元素。以下是向量的基本操作:
#include
#include
int main() {
std::vector
// 添加元素
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
// 访问元素 int main() { // 添加元素 // 遍历容器 int main() { // 添加元素 // 遍历容器
std::cout << "First element: " << vec.front() << std::endl;
// 删除元素
vec.pop_back();
// 遍历容器
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " ";
}
std::cout << std::endl;
return 0;
}
4. 列表(list)
列表是一种双向链表,允许在任意位置高效地插入和删除元素。以下是列表的基本操作:
#include
#include
std::list
lst.push_back(1);
lst.push_back(2);
lst.push_back(3);
for (auto it = lst.begin(); it != lst.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
5. 集合(set)
集合是一种无序容器,存储唯一的元素。以下是集合的基本操作:
#include
#include
std::set
st.insert(1);
st.insert(2);
st.insert(3);
for (auto it = st.begin(); it != st.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
6. 映射(map)
映射是一种关联容器,存储键值对。以下是映射的基本操作:
#include
#include