- 博客(15)
- 收藏
- 关注
原创 c++中计算二进制中为1的位数的函数
大多数编程语言都内置了计算二进制表达中 11 的数量的函数。在工程中,我们应该直接使用内置函数。c++中可以使用函数__builtin_popcount(int num)
2021-07-01 14:28:36
2088
原创 unordered_map注意事项
关于[]运算:当利用[]运算符取unordered_map中的值时,如果[]中的元素不存在,那么返回0;如下:@Override unordered_map<char, int> t_win; cout << "测试取下标返回值:" << t_win['k'] << endl; }...
2021-03-24 20:56:55
220
原创 c++中各种长度整型的分析
long long:long long本质上还是整型,只不过是一种超长的整型。int型:32位整型,取值范围为-2^31 ~ (2^31 - 1) .long:在32位系统是32位整型,取值范围为-2^31 ~ (2^31 - 1);在64位系统是64位整型,取值范围为-2^63 ~ (2^63 - 1)long long:是64位的整型,取值范围为-2^63 ~ (2^63 - 1)。补充:long long不是所有编译器都使用的,说白了它就是一种能够表示范围更大的整数的类型。一般来说,整数
2021-03-23 15:14:39
5278
原创 c++中乘除法操作尽量用移位操作来代替
比如a / 2,a * 2,a / 4,等操作可以用a>>1,a<<1,a>>2来代替。移位操作执行速度快。
2021-03-13 14:10:47
499
原创 STL容器中 emplace() 与 insert()
emplace效率高于insert:这说明emplace是调用构造函数,直接在容器中构造一个元素。而insert,push是拷贝操作,将元素拷贝到容器中。
2021-03-10 20:22:28
914
原创 <algorithm>头文件中包含的常用函数
1、min;max;2、generate(vector.begin(), vector.end(), std::rand) :生成随机数序列;3、count_if(vector.begin(), vector.end(), function):判断function返回true的元素个数;
2021-03-10 19:43:29
200
原创 string的学习与使用
string中字符的存取:注意,当字符串为空时调用back函数会报错。string成员函数详细返回值及用法:链接: link.
2021-03-10 15:52:21
136
原创 一个比较难的动态规划编程题
Leetcode第10题:求解思路:考虑到本题具有最优子结构的性质,故而可以考虑使用动态规划的方法求解。动态规划问题求解需要考虑:一、状态转移方程二、动态规划的边界条件用 f[i][j] 表示s的前i个字符与p的前j个字符匹配。本题在求解状态转移方程时需要考虑一下三种情况:1、p的最后一个字符是普通小写字母;2、p的最后一个字符是“.”;3、p的最后一个字符是“*”;显然1和2情况的状态转移方程很容易得出,只需要考虑s[i]是否与p[j]匹配(s[i] = p[j] 或者 p[j
2021-03-10 12:55:28
271
转载 for (char c : s)这种循环方式的使用
for (char c : s)这种循环方式的使用1、基于范围的for循环(c++11支持):1)这是C++11中新增的一种循环写法,对数组(或容器类,如vector和array)的每个元素执行相同的操作,此外string类也支持这种对字符的遍历循环操作。如: double prices[5] = {4.99,5.99,6.99,7.99,8.99};for(double x:prices)cout << x << endl;其中,x最初表示数组prices的第一个元素,
2021-03-09 17:15:21
13052
原创 vector使用注意要点
vector使用注意要点:1、reserve的使用:声明了一个vector类型变量之后最好先给他reserve一个适当的capacity,不要直接使用pushback不断添加元素进去,因为不用reserve就直接pushback会使得vector不断地进行动态扩增,增加没必要的消耗...
2021-03-09 14:39:27
215
转载 size_t和int区别
size_t和int区别size_t和int size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。在32位架构中被普遍定义为:typedef unsigned int size_t;而在64位架构中被定义为:typedef unsigned long size_t;
2021-03-09 14:13:23
242
原创 vector中reserve与resize区别
vector中reserve与resize区别一、基本概念1、capacity指容器在分配新的存储空间之前能存储的元素总数。2、size指当前容器所存储的元素个数二、reserve与resize1.区别1、reserve()只修改capacity大小,不修改size大小,2、resize()既修改capacity大小,也修改size大小。注意:resize只会在修改后的size()大小大于当前capacity()大小时才会修改capacity大小,比如下面情况就不会修改capacity:
2021-03-09 13:48:28
4101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人