STL#创作计划#
2025-08-30 15:44:30
发布于:上海
set: 集合
- 没有重复的元素{1, 1, 3, 4} -> {1, 3, 4}
- 自动排序
insert()
s.insert(x) x = 3,4,1
{1, 3, 4}
- 打印:迭代器
set<int>::iterator it;
set<int> s;
s.insert(4);
s.insert(3);
s.insert(1);
for(set<int>::iterator it = s.begin(); it != s.end(); it++) { // set<int>::iterator = auto
cout << *it <<"\n";
}
find()
函数 (的时间复杂度)
当查找数字存在,返回迭代器
不存在,返回s.end()
it = s.find(5);
if(it == s.end()){
//不存在
}
else //存在
list:链表
- 链表易于插入和删除,不易于查找
list<int> li;
- 插入
li.push_back(x)
-> 尾插
li.push_front(x)
-> 头插 - 遍历这玩意儿也是需要可爱的迭代器的
list<int> li;
li.push_back(1);
li.push_back(3);
li.push_back(4);
for(auto it = li.begin(); it!=li.end(); it++){ // list<int>::iterator 的万能替代品->auto
cout << *it << endl;
}
- 删除
用find()
先找到数据的地址
再用erase()
删除
注意:find()
函数里有三个参数,第一个参数是开始地址,第二个参数是结束地址,第三个参数是要查找的数
auto k = find(li.begin(), li.end(), 1);
li.erase(k);
拓展窗
unique()
函数:去重
- 用法:
unique(<开始地址>,<结束地址>);
注意:unique()
返回的是去重后最后一个地址的位置。在统计里面有几个不重复参数时,cout<<unique(<开始地址>,<结束地址>);
后要
欢迎提出修改建议,不喜勿喷
这里空空如也
有帮助,赞一个