map<key,value> key 不同,value可同,有序。
set<key> key不同 , 有序 。 用于整数去重排序最好不过了。不能改值。
代码亲测可行,自己MARK一下,也供大家参考。
map
void maptest()
{
//1.定义 map<char, int> mymap;
//2.插入insert pair<,>
//3.得到大小 int nSize = mymap.size();
//4.查找 iter=mymap.find() 输入key 返回iter
//5.删除 int n=mymap.erase(key) 返1 成功;返0 不成功
//6.删除全部 mymap.erase(mymap.begin(), mymap.end());
//7.修改mymap['d']=4000;
cout<<"map 增删改查 ******"<<endl;
cout << "1定义 map<char, int> mymap;" << endl;
cout << " 2插入insert pair<,>" << endl;
map<char, int> mymap;
mymap.insert(pair<char, int>('a', 100));
mymap.insert(pair<char, int>('z', 200));
mymap.insert(pair<char, int>('b', 300));
mymap['d'] = 400;
mymap.insert(map<char, int>::value_type('f', 500));
map<char, int>::iterator iter;
for (iter = mymap.begin(); iter != mymap.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}
cout << " 3得到大小 int nSize = mymap.size();" << endl;
int nSize = mymap.size();
cout << nSize << endl;
cout << "4.查找 iter=mymap.find(b) 输入key 返回iter" << endl;
iter = mymap.find('b');
cout << iter->first << " " << iter->second << endl;
cout << "5.删除 int n=mymap.erase(key) 返1 成功;返0 不成功" << endl;
int n = mymap.erase('b');
cout << "删除后的返回值="<<n << endl;
for (iter = mymap.begin(); iter != mymap.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}
cout << "6.修改mymap['d']=4000;" << endl;
mymap['d'] = 4000;
cout << mymap['d'] << endl;
cout << "7.删除全部 mymap.erase(mymap.begin(), mymap.end());" << endl;
mymap.erase(mymap.begin(), mymap.end());
nSize = mymap.size();
cout << "删除全部后map的长度"<<nSize << endl;
}
set
void settest()
{
//1.定义 set<int> myset;
//2.插入insert <key>
//3.得到大小 int nSize = myset.size();
//4.查找 iter=myset.find(key) 输入key 返回iter
//5.定位 iter=lower_bound(key) <=key 返回iter
// 定位 iter = upper_bound(key) >=key 返回iter
//6.删除 int n=myset.erase(key) 返1 成功;返0 不成功
// 删除全部 mymap.clear();
cout << "1.定义 set<char, int> myset;" << endl;
set<int> myset;
myset.insert(1);
myset.insert(2);
myset.insert(10);
myset.insert(100);
myset.insert(4);
myset.insert(8);
myset.insert(9);
cout << "2.插入insert <key>" << endl;
set<int>::iterator iter;
for (iter = myset.begin(); iter != myset.end(); iter++)
{
cout << *iter << endl;
}
cout << "auto 类型遍历" << endl;
for (auto iter1 = myset.begin(); iter1 != myset.end(); iter1++)
{
cout << *iter1 << endl;
}
cout << "3.得到大小 int nSize = myset.size();" << myset.size() << endl;
cout << "4.查找 iter=myset.find(key) 输入key 返回iter" <<endl;
iter = myset.find(100);
cout << *iter << endl;
cout << "5.定位 iter=lower_bound(key) <=key 返回iter 第一个" << endl;
iter = myset.lower_bound(100);
cout << *iter << endl;
cout << "6 定位 iter = upper_bound(key) >=key 返回iter 第一个" << endl;
iter = myset.upper_bound(10);
cout << *iter << endl;
cout << "6.删除 int n=myset.erase(key) 返1 成功;返0 不成功" << endl;
cout << "int n="<<myset.erase(8) << endl;
for (auto iter1 = myset.begin(); iter1 != myset.end(); iter1++)
{
cout << *iter1 << endl;
}
cout << " 删除全部 myset.clear();" << endl;
myset.clear();
cout << "删除后大小 int nSize = myset.size();" << myset.size() << endl;
}
原文链接: https://www.cnblogs.com/jasmineTang/p/14369308.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/327472
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!