如果每次都排序一遍肯定会超时的,可以使用 STL 中自动排序的 Set ,因为是两个数,所以加上 pair 就可以。 如果是2,那就尾部选一个,然后删除掉。 如果是3,就从头选一个,然后删除掉。 加上pair 排序就是先按第一个排,再按第二个,都是从小到大的顺序。 注意set 的begin( ) 和 end( ) 。 一开始的憨憨...
1.默认pair<int, int>排序 set<pair<int,int> > set_pair;for(inti=0; i<10; i++){ set_pair.insert(pair<int,int>(i, i%3)); }for(set<pair<int,int> >::iterator iter=set_pair.begin(); iter!=set_pair.end(); iter++){ cout<<"("<<iter->first<<","<<iter->second<<") "...
使用emplace可以节省掉创建实例的一步,所以通常工程当中往往大量使用emplace。 emplace函数返回的结果是一个pair,pair的第一个元素是set的迭代器,表示插入的元素的位置,第二个值是一个bool,表示是否插入成功。 emplace_hint emplace函数的改进版,接受额外的参数表示插入set的位置。它的返回结果也有了一些变化,返回的是一...
"equal_range pair == lower_bound & upper_bound" set的排序规则 set默认是从小到大排序的,当我们要从大到小排序或者用自定义数据排序的时候,我们就要指定排序规则,同样也是使用仿函数实现: //functor为仿函数set<int,functor> s; ... 自己写一个仿函数即可。可参照我不熟悉的list. 不支持回调函数。 速记:因...
// pair 对组的使用 make_pair()void testPair() {// 默认构造pair<string, int> pre("微凉", 10);pair<string, int> ptr = make_pair("秋意", 24);// 获取值cout << pre.first << ptr.first << "\n" << pre.second << ptr.second << endl;} ...
insert 函数的返回值是一个 pair 类型,也就是说他同时返回了两个值。其中第二个返回值是 bool 类型,指示了插入是否成功。 若元素在 set 容器中已存有相同的元素,则插入失败,这个 bool 值为 false;如果元素在 set 中不存在,则插入成功,这个 bool 值为 true。
set<pair<int, int> > b; b.insert(std::make_pair(2, 3)); (2)多个元素的插入: 代码语言:c++ 复制 vector<int> array{1, 2, 3}; set<int> a; a.insert(array.begin(), array.end()); 2.使用emplace函数插入元素: emplace函数向set容器中添加一个新元素,但不复制或移动现有元素,而是直接在容...
sort( ) 排序 #include<iostream>usingnamespacestd;#include<list>#include<algorithm>voidprint(constlist<int>&L){...}voidtest01(){list<int>L1;L1.push_back(10);...print(L1);sort(L1.begin(),L1.end());//错误}intmain(){test01();system("pause");return0;} ...
cout<<s.count(1)<<endl;}voidtest_map1(){map<string,string>m;//m.insert(pair<string, string>("sort", "排序"));m.insert(make_pair("sort","排序"));m.insert(make_pair("string","字符串"));m.insert(make_pair("left","左"));m.insert(make_pair("right","右"));m.insert...
void Test_set1() { //排序+去重 set<int> s; s.insert(5); s.insert(2); s.insert(6); s.insert(1); s.insert(1); s.insert(2); //pair<set<int>::iterator, bool> ret1 = s.insert(5); auto ret1 = s.insert(5); cout << ret1.second << endl; //删除存在的元素 s.erase...