c++小记

1,二维的vector如何初始化?

直接初始化 vector<vector<int>>v={{...},{....},{...}};

或 vector<vector<int>>v(n,vector<int>(n,0));

resize函数初始化赋值 v.resize(n,vector<int>(n));

2,哈希总结

map:提供一对一hash,有序(自动排序),内部是红黑树。key---value

常用函数:


map<int,int>mp;

     begin()         返回指向map头部的迭代器

     end()           返回指向map末尾的迭代器

     clear()        删除所有元素

     count()         返回指定元素出现的次数(因为key值不会重复,所以只能是1 or 0)

     empty()         如果map为空则返回true

     equal_range()   返回特殊条目的迭代器对

     erase()         删除一个元素

     find()          查找一个元素

     get_allocator() 返回map的配置器

     insert()        插入元素

     key_comp()      返回比较元素key的函数

     lower_bound()   返回键值>=给定元素的第一个位置

     max_size()      返回可以容纳的最大元素个数

     rbegin()        返回一个指向map尾部的逆向迭代器

     rend()          返回一个指向map头部的逆向迭代器

     size()          返回map中元素的个数

     swap()           交换两个map

     upper_bound()    返回键值>给定元素的第一个位置

     value_comp()     返回比较元素value的函数

 
mp.insert();
//第二行等效于:
mp[0]=1;
mp[1]=2;
mp[2]=3;
//注:如果某个位置有值,insert不可直接插入,而用数组方式赋值时可直接覆盖。
    
 mymap.insert(make_pair(3, "c")):根据传入的两个参数,直接构造成一个pari对象,insert到map中。

 mymap.insert(pair<int, string>(4, "d")):可以使用pari方法插入kv对。

②unordered_map:无序

根据key查找单个value,无序,比map效率高,内存占用高。

 

set:就是集合,每个元素有序(以int为例默认升序,所以不能直接改变元素值)且只出现一次(底层通常为平衡二叉树)。允许存储任何类型唯一值,无论原始值还是对象引用。时间复杂度:O(log2 n)。如果想改变元素的值,必须先删除该元素,再插入新的元素。

默认升序:


set<int>q;

降序:


set<int,greater<int>>q;

set中erase的用法:


q.earase(x);//删除q中x,删除成功返回1,失败(set中不存在x)返回0;

unordered_map:集合,元素无序,且元素互异。增删改查时间复杂度为O(n);

3,STL中value_type的含义?

value_type 是用来表示迭代器所指对象的类别的。

4,stack

常用操作


stack<int>q;
int x;
q.push(x);
q.top();//返回栈顶元素
q.pop();//弹出栈顶元素
q.size();
q.empty();

5,lowbit(x)函数

返回一个将x转换为二进制的从右往左第一个1的数


int lowbit(int x)
{
    return x&(-x);
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Adellle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值