哈希set和map的stl
哈希STL介绍
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
set和map的特性
set
#include<stdio.h>
#include<iostream>
#include <unordered_map>
#include <unordered_set>
using namespace std;
int main()
{
//set的定义和初始化
unordered_set<int>set;
unordered_set<int>set1[100];
//unoreder_set<int>set2(x.begin(),x.end())迭代器赋值,用来复制set或者vector
//set的插入操作-插入后自动去重(unordered-set)
for (int i = 0; i < 5; i++)
{
set.insert(i);
}
//set的遍历操作
for (auto i = set.begin(); i!=set.end();i++)
{
cout << *i;
}
//set的find操作(返回的是迭代器。找到set中值为val的迭代器,如果没有找到返回end())
cout << endl;
auto search = set.find(3);
cout << *search;
//set的erase操作:删除特定元素或是指定区域的元素,参数为迭代器
set.erase(set.find(3));//删除3
set.erase(set.find(3), set.end());//删除[3,end]范围内所有的数
//size返回set的大小
cout << set.size();
//clear清空整个set
set.clear();
}
map
#include<stdio.h>
#include<iostream>
#include <unordered_map>
#include <unordered_set>
#include <map>
using namespace std;
int main()
{
//map的定义和初始化
map<char,int>map;
//map访问
map['c'] = 20;
map['a'] = 10;
map['b'] = 30;
cout << map['c'];//返回value 20
cout << endl;
for (auto i = map.begin(); i != map.end(); i++)
{
cout << i->first<<' ';
cout << i->second << endl;
}
//find操作,参数为key值,second返回value,first返回key
auto search = map.find('a');
cout << search->second;
cout << endl;
//erase操作,和set相同参数为迭代器
auto search1 = map.erase(map.find('b'), map.end());
//size获取map的大小
cout << map.size();
cout << endl;
//clear清空map
map.clear();
}