医院网站建设政策,网站需不需要备案,网站建设备案不通过,动漫模板素材图片1 set和multiset
1.1 插入元素方式
set只能用insert插入数据. insert返回值是一个pairiterator, bool, 即插入数据的迭代器以及是否插入成功, multiset返回的只有迭代器, 因为不会插入失败.
1.2 删除
set只能用erase, 可以传迭代器或者是值.
1.3 注意事项
不允许…1 set和multiset
1.1 插入元素方式
set只能用insert插入数据. insert返回值是一个pairiterator, bool, 即插入数据的迭代器以及是否插入成功, multiset返回的只有迭代器, 因为不会插入失败.
1.2 删除
set只能用erase, 可以传迭代器或者是值.
1.3 注意事项
不允许resize()可以用swap()
1.4 find和count
find返回容器中值为参数的元素的迭代器, 如果没找到, 会返回容器的end;
count会返回容器中值为参数的元素的个数, 只能为0或者1;
1.5 修改set容器排序规则
如下测试代码:
struct moreCompare {bool operator()(int first, int second) {return first second;}
};void modifySetOrderRulesTest() {setint, moreCompare tSet;int array[] {7,5,2,9,8,4,0,1,3,6};TestUtils::getInstance()-getSetOrMultisetByArr(tSet, PARAM_ARRAY(array));TestUtils::getInstance()-showContainerElementssetint::iterator(tSet);
}
结果是: 如果想要修改set(multiset)/map(multimap), 只能在 初始化容器的过程中, 尖括号中传入排序规则, 且这个排序规则只能传入重载了括号运算符的结构体或者类.
2 map与multimap
2.1 通过key值插入
如以下例子:
void mapInsertTest() {mapint, string mMap;mMap.insert({0, a});mMap.insert({1, b});mMap.insert({2, c});TestUtils::getInstance()-showMapOrMultimapElementsmapint, string::iterator(mMap);mMap[8] ok;TestUtils::getInstance()-showMapOrMultimapElementsmapint, string::iterator(mMap);cout mMap[10] mMap[10] endl;
}
结果如下: 也就是说当用map[键值](键值此时不存在)访问value时, 会插入一个对应键值的pair, value值为空, 或者是0;