STL容器:vector、set、map
2024-12-14 15:54:05
发布于:北京
一、vector 动态数组
#include<vector>
定义:
vector<int>v; //创建空vector
vector<int>v(3) //创建初始空间为3的vector,其元素默认为0
vector<int>v(3,2) //创建初始空间为3的vector,其元素默认为2
输入:
vector<int>v;
v.push_back(6)//把6插入v数组
访问:
用下标
访问范围:1~v.size()-1
v.size()是求vector的元素数量
遍历与输出:
1、与数组一样
2、迭代器:
(1)格式:容器类型::iterator 迭代器名
vector<int>::iterator it;//定义verctor的迭代器it
(2) 使用:
vector<int>::iterator it;
for(it = v.begin(); it != v.end(); it++){
cout << *it << " ";
}
3、auto(C++11以上)自动生成迭代器
for(auto it = v.begin(); it != v.end(); it++){
cout << *it << " ";
}
简写:
for(auto it : v){
cout << it << " ";
}
二、set 去重升序集合
#include<set>
定义:
set<int>se;
输入:
se.insert(1);//插入1
遍历与输出:
迭代器:
1、
set<int>::iterator it;
for(it = se.begin(); it != se.end(); it++){
cout << *it << " ";
}
2、auto(C++11以上)自动生成迭代器
for(auto it = se.begin(); it != se.end(); it++){
cout << *it << " ";
}
简写:
for(auto it : se){
cout << it << " ";
}
常用函数
se.size();//长度
se.insert(x);
se.erase(x);//删除所有x
se.find(x);//在se中查找x,返回一个迭代器,没找到返回end()
se.empty();//判空
三、map 键值对
用来存储 键值对
定义:
map<键类型,值类型> 变量名;
map<char,int>mp;
遍历与输出:
迭代器:
1、
map<string ,int>::iterator it;
for(it = mp.begin(); it != mp.end(); it++){
cout <<"key:" << it->first << "value:" << it->second << " ";
}
2、auto(C++11以上)自动生成迭代器
for(auto it = mp.begin(); it != mp.end(); it++){
cout <<"key:" << it->first << "value:" << it->second << " ";
}
简写:
for(auto it : mp){
cout <<"key:" << it.first << "value:" << it.second << " ";
}
常用函数
mp.size();//长度
mp.erase(x);//删除所有键为x的元素
mp.find(x);//在mp中查找键为x的元素,返回一个迭代器,没找到返回end()
mp.empty();//判空
这里空空如也
有帮助,赞一个