c++
lmlmwj
这个作者很懒,什么都没留下…
展开
-
c++位运算判断某值的二进制中1的个数,某值是不是2的n次方
n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子: n = 10110(二进制),则(n-1) = 10101==》n&(n-1) = 10100 可以看到原本最低位为1的那位变为0。 #include<iostream> #include<algorithm> using namespace std; int main() { //输出1的个数 int x=7; int sum=0; while ...转载 2020-09-11 20:53:38 · 310 阅读 · 0 评论 -
c++求最大值最小值,中值(第几大值)
头文件:#include <algorithm> min_element()//最小值 max_element()//最大值 nth_element()//第n大 一、最大最小值 bool compare(int i,int j) { return i<j; } int main() { int a[] = { 5,6,7,8,4,2,1,3,0 }; int len = sizeof(a) / sizeof(int); vector<int&g...原创 2020-09-10 20:36:06 · 3185 阅读 · 0 评论 -
vector与list的区别
一、概念 Vector: 底层实现:数组 连续存储的容器,动态数组,在堆上分配空间 两倍容量增长:vector 增加(插入)新元素时,如果未超过当时的容量,则还有剩余空间,那么直接添加到最后(插入指定位置),然后调整迭代器。如果没有剩余空间了,则会重新配置原有元素个数的两倍空间,然后将原空间元素通过复制的方式初始化新空间,再向新空间增加元素,最后析构并释放原空间,之前的迭代器会失效。 适用性:如果需要高效的随即访问,而不在乎插入和删除的效率,使用vector。 vector拥有一段连续的内存空间原创 2020-07-07 21:41:58 · 393 阅读 · 0 评论 -
map和unordered_map的区别
一.头文件不同,分别是: #include<map> #include<unordered_map> 二.其实现不同 map:其实现是使用了红黑树 unordered_map:其实现使用的是哈希表 三.特点 map: 元素有序,并且具有自动排序的功能(因为红黑树具有自动排序的功能) 元素按照二叉搜索树存储的,也就是说,其左子树上所有节点的键值都小于根节点的键值,右子树所有节点的键值都大于根节点的键值,使用中序遍历可将键值按照从小到大遍历出来 空间占用率高,因为ma原创 2020-07-07 20:50:49 · 8428 阅读 · 0 评论