参考书籍 《C++Primer》 1.添加元素 添加元素是指添加一个元素或者一个元素范围; 返回值: 对于map、set插入后会返回一个是否插入成功的bool值,若插入成功则会返回一个指向指定元素的迭代器。 对于multi_**总是会插入,所以无需返回bool值; (1)set set的插入操作和之前熟悉的vector类似。
set<int> set1;
set1.insert(1);
set1.insert(v1.begin(),v1.end());
(2)map map中进行插入操作时,需要知道元素类型是pair; 需要插入数据时可以显示调用pair对象,可以在insert参数中创建pair对象;
map<string,int> map1;
map1.insert({"word",1});
map1.insert(make_pair("word",1));
map1.insert(pair<string,int>("word",1));
(3)关联容器的插入操作汇总
c.insert(b,e);
c.insert(p,v);
2.删除元素 可以删除指定位置的元素,也可以删除具体的元素值; 返回值: 对于map、set返回0或1,返回0是指待删除元素不在容器中; 对于muliti_**删除的数量可能大于1; (1)操作汇总
c.erase(k);
c.erase(p);
c.erase(b,e);
3.下标操作 set没有下标操作,元素本身就是关键字,获取“关键字相关联的值就没有意义” (1)map map的下标操作是接受一个索引; 如果元素在map中则返回对应的值,不在map中则会对其进行初始化,加入新的元素。 所以只想执行查询操作是,不能使用下标运算符。
4.访问元素 lower_bound和upper_bound不适用与无序容器
c.find(k);
c.count(k);
c.lower_bound(k);
c.upper_bound(k);
c.equal_range(k);
|