c++基础知识
吹牛大王历险记
时间改变的是那些本就不坚定的东西
展开
-
自定义非负求余运算
自定义非负求余运算在解决共余问题时,我们通常需要将余数转换为非负数,下面给出非负求余运算公式//非负求余公式 int getMod(int a,int n){ return (a%n+n)%n;}基本思想是将负数的余数可以转换成其对应的正数的补数。...原创 2021-02-22 12:54:33 · 237 阅读 · 0 评论 -
最近关于vector的学习以及遇到的一些坑
如何在利用构造函数申请空间 vector<int> v(10); //构造一个int类型的容器并且申请10个空间 //然后我们插入一个元素 v.push_back(1);在上面这个过程中,大家可以思考一下我们到底把1放到了哪个位置。以前我认为v[0]==1,但是在一次做leetcode题目的时候我发现并不是这样的。我们的1将放到申请的10个空间之后,即v[10]==1。另外,向像一个容器尾部插入另外一个容器中的数据可以使用insert函数//向容器v1的尾部插入v2的所有元素 v原创 2020-11-26 23:24:57 · 796 阅读 · 0 评论 -
将char类型转换为string类型
将char类型转换为string类型string的构造函数中有此函数原型:string (size_t n, char c);因此我们可以直接使用此函数string s(1,'a'); //创建s并将1个a存入到s中 前面的数字代表多少个扩展将char类型放入到vector<string> 容器中第一种就是vector<string> v;v.emplace_back(size_t n, char c); //emplace为c++11中的函数..原创 2020-10-14 18:05:02 · 10339 阅读 · 0 评论 -
equal_range()的用法
equal_range()的用法equal_range()是c++中内置的二分查找算法必须有序该算法才能得到正确结果否则只会返回查找元素的以一个位置和最后一个位置其返回的为一个对组分别为迭代器类型 他能找到要找元素的第一个位置和最后一个位置的下一个位置 如果找不到则指向应该插入该元素的位置例如vector<int> v={0,1,1,1,2,3,4};auto it=equal_range(v.begin(),v.end(),1);该函数主要在unordered_map(..原创 2020-10-10 23:44:56 · 2126 阅读 · 0 评论 -
emplace_back
前几天在写leetcoe的时候在评论区看到了emplace_back,于是就查询了他和push_back的区别简而言之,emplace_back()是原地构造,不需要触发拷贝构造和转移构造而push_bach()需要先调用构造函数创建一个临时对象,然后再次调用构造函数将该对象复制到容器中,然后释放临时对象.emplace_back是c++11中对拷贝的优化,所以以后再次写题目的时候尽可能用emplace_back()...原创 2020-10-10 21:55:23 · 1245 阅读 · 0 评论 -
c++以16进制大写输出
c++以16进制大写输出int i=10;(定义一个10进制数字并赋值)cout<<hex<<uppercase<<setw(2)<<10;其中uppercase为将字母转换为大写setw为设置最小宽度原创 2020-09-10 23:01:33 · 2766 阅读 · 0 评论 -
c++动态申请空间的两种方法
c++动态申请空间的两种方法第一种使用二重指针(下面以int类型为例子)int **res=new int*[row];for(int i=0;i<row;i++){ rew[i]=new int[column];}第二中 使用vector容器(仍然以int为例子)vector<vector<int>> v(row,vector<int>(column));...原创 2020-09-10 22:47:02 · 961 阅读 · 0 评论