STL 容器
STL容器有共同的操作接口,包括初始化操作、判空、查看大小、比较元素、销毁、交换,这些操作都是一样的接口。
对于访问遍历元素(增删改查),都可以使用迭代器(正向)进行操作,大部分容器支持反向迭代器。另外像Array、vector、string、map、unordered_map支持下标[]操作访问操作元素。
另外容器类型的使用,如vector<int>::iterator。

STL算法
STL算法都是使用迭代器来实现,需要注意的是有些操作会使原有的迭代器失效。经常用到算法一般有查找find、排序sort等。
迭代器使用虽然通用,但是像vector、map、string我们通常使用下标操作,但是下标又不能用于算法接口,但如果想混用下标、迭代器、算法,还是可以的。比如想删除某个key的元素,可以先find这个key的元素,然后使用算法erase删除该find返回的迭代器指向的元素。
例如:
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap = {
{"apple", 1},
{"banana", 2},
{"orange", 3},
};
std::string keyToDelete = "banana";
// 查找指定的 key
auto it = myMap.find(keyToDelete);
// 如果找到了要删除的 key,则执行删除操作
if (it != myMap.end()) {
myMap.erase(it);
std::cout << keyToDelete << " has been removed from the map." << std::endl;
} else {
std::cout << keyToDelete << " was not found in the map." << std::endl;
}
// 输出剩余的 key-value 对
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
附图:STL容器的共同操作


1172

被折叠的 条评论
为什么被折叠?



