c++学习笔记
wuxiecsdn
这个作者很懒,什么都没留下…
展开
-
x & (x-1)操作
可以将x的二进制表示的最后一位1置0原创 2021-07-09 18:07:18 · 140 阅读 · 0 评论 -
c++中计算二进制中为1的位数的函数
大多数编程语言都内置了计算二进制表达中 11 的数量的函数。在工程中,我们应该直接使用内置函数。c++中可以使用函数__builtin_popcount(int num)原创 2021-07-01 14:28:36 · 1959 阅读 · 0 评论 -
CPP常识 01 -- 判断两个vector是否相等
https://www.jianshu.com/p/51225ce0b234转载 2021-06-28 21:27:25 · 1381 阅读 · 0 评论 -
C++ 中的 inline 用法
https://www.runoob.com/w3cnote/cpp-inline-usage.html转载 2021-05-12 12:45:28 · 104 阅读 · 0 评论 -
unordered_map注意事项
关于[]运算:当利用[]运算符取unordered_map中的值时,如果[]中的元素不存在,那么返回0;如下:@Override unordered_map<char, int> t_win; cout << "测试取下标返回值:" << t_win['k'] << endl; }...原创 2021-03-24 20:56:55 · 202 阅读 · 0 评论 -
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 · 5167 阅读 · 0 评论 -
c++中乘除法操作尽量用移位操作来代替
比如a / 2,a * 2,a / 4,等操作可以用a>>1,a<<1,a>>2来代替。移位操作执行速度快。原创 2021-03-13 14:10:47 · 466 阅读 · 0 评论 -
STL容器中 emplace() 与 insert()
emplace效率高于insert:这说明emplace是调用构造函数,直接在容器中构造一个元素。而insert,push是拷贝操作,将元素拷贝到容器中。原创 2021-03-10 20:22:28 · 851 阅读 · 0 评论 -
<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 · 185 阅读 · 0 评论 -
string的学习与使用
string中字符的存取:注意,当字符串为空时调用back函数会报错。string成员函数详细返回值及用法:链接: link.原创 2021-03-10 15:52:21 · 125 阅读 · 0 评论 -
vector使用注意要点
vector使用注意要点:1、reserve的使用:声明了一个vector类型变量之后最好先给他reserve一个适当的capacity,不要直接使用pushback不断添加元素进去,因为不用reserve就直接pushback会使得vector不断地进行动态扩增,增加没必要的消耗...原创 2021-03-09 14:39:27 · 206 阅读 · 0 评论 -
一个比较难的动态规划编程题
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 · 245 阅读 · 0 评论 -
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 · 12588 阅读 · 0 评论 -
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 · 223 阅读 · 0 评论 -
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 · 4043 阅读 · 0 评论