C++常用STL整理

map

map提供一对一的hash,key-value对,map<keyType,
valueType>,key只能出现一次。可以通过map[key]的方式来访问key对应的value值。

  1. 插入:
    map<keyType, valueType> m;
    (1)m[key]=value; 若key已经存在在map里,可以覆盖;若不存在则增加进去。
    (2)m.insert(pair<keyType, valueType>(key, value)); 不覆盖,若已有key则插入失败。
  2. 查找:
    (1)find函数:
    map<keyType, valueType>::iterator iter=m.find(key);
    if(iter!=m.end())说明找到了;
    (2)m.count(key); 返回出现的次数
  3. 删除:
    (1)用关键字删除:m.erase(key);
    (2)用迭代器一个或范围:m.erase(iter); 或m.erase(m.begin(), m.end())。
  4. 清空:m.clear();
  5. 判断是否为空:m.empty();
  6. 大小:m.size()。

vector

  1. 构造:
    vector<int> v;
    vector<int> v(10); 10个元素,每个元素按照缺省值初始化(此处为0)
    vector<int> v(10, -1); 初始化为10个值为-1的int
    vector<int> v(v1);
    vector<int> v = v1;
    vector<int> v = {1,2,3,4,5};
    vector<int> v(v1.begin()+2, v1.end()-1); 注意是左开右闭区间
  2. 查找:
    vector<int> v; int target;
    vector<int>::iterator index=find(v.begin(), v.end(), target),
    vector<int>::iterator类型的变量可以和v.begin()/v.end()进行减法得下标
  3. 插入:
    (1)v.push_back(x);
    (2)v.insert(iterator it, const T & x);
  4. 删除:
    (1)v.erase(iterator it);
    (2)v.erase(iterator first, iterator last); (first,last];
    (3)v.pop_back();
  5. v.front()/v.back()返回的是首尾元素的引用;
    v.begin()/v.end()是头尾指针;
    v.rbegin()/v.rend()是反向迭代器,最后一个元素以及第一个元素之前的位置
  6. 其他:
    v.empty();v.size();v.clear()。

sort

(1)默认升序:sort( v.begin(), v.end() )
(2)升序:sort( v.begin(), v.end(), less() );降序:sort( v.begin(), v.end(), greater() )
(3)自定义:sort( v.begin(), v.end(), comp)(comp为bool返回值的函数或函数对象)C++ reference 上的例子

qsort

qsort( void* base, size_t num, size_t typesize, int(* comp)(const void*, const void*) );
其中comp函数返回值:
<0:p1排在p2前;
0:相等;
>0:p1排在p2指向的元素的后面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值