摘要
C++入门 结构体 set类型的增删改查 map类型的增删改查
5.结构体
结构体定义 1 2 3 4 5 6
| struct stu{ int num; float score; };
stu arr[10];
|
在函数中调用结构体通常使用引用的方式
6.set类
6.1 简介
set
是集合的意思,与python的集合类似,各个元素各不相同,但在添加时会自动排好序,如不需要排序,可以引用#include <unordered_map>
来使用unordered_set
1 2 3 4 5
| #include <set> using namespace std;
set<int> s; //定义一个空的int类型的集合 set<stu> s; //定义一个空的结构体类型集合
|
6.2 增
- 使用
insert
输入
1 2
| s.insert(1); s.insert(3);
|
6.3 删
- 使用
.erase()
清除定元素
该函数有返回值,删除成功返回1,未找到元素返回0
也可以用来删除区间,但set
不能使用s.begin()+1
这种,所以不太方便
1
| s.erase(s.find(2),s.end());//把2开始到结束的都删了
|
- 使用
.clear()
清空集合
6.4 改
无法更改
6.5 查
- 遍历
1 2 3 4 5 6 7
| for (auto i : s) cout << i << endl;
for (set<int>::iterator it = s.begin(); it != s.end(); it++){ cout << *it << " "; }
|
- 使用
.find()
查找集合中的值
1
| cout << (s.find(10) != s.end()) << endl;
|
输出0为没找到,1为找到了
- 使用
.size()
获得元素个数
1
| cout << s.size() << endl;
|
7.map类型
7.1 简介
map
是映射,类似有python的字典类型,也会自动排序,map
中的键是唯一的,以先出现的为准。
1 2 3 4 5 6
| #include <map> #include <string> using namespace std;
map<string, int> m;//定义空map,键为string,值为int map<string, int> m1 = {{"a",1},{"b",2}};
|
7.2 增
- 使用下标输入
7.3 删
- 使用
.erase()
清除特定元素
该函数有返回值,删除成功返回1,未找到元素返回0
也可以用来删除区间,map
不能使用m.begin()+1
1
| m.erase(m.begin(),s.end());//把开始到结束的都删了
|
- 使用
.clear()
清空集合
7.4 改
- 直接引用更改
7.5 查
- 遍历
1 2 3 4 5 6 7
| for (auto i : m) cout << i.first << " " << i.second << endl;
for (map<string, int>::iterator it = m.begin(); it != m.end(); it++){ cout << it->first << " " << it->second << endl; }
|
- 使用
.find()
查找集合中的键
1
| cout << (m.find("hello") != m.end()) << endl;
|
输出0为没找到,1为找到了
- 使用
.size()
获得元素个数
1
| cout << m.size() << endl;
|