
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 · 333 阅读 · 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 · 3333 阅读 · 0 评论 -
vector与list的区别
一、概念Vector:底层实现:数组连续存储的容器,动态数组,在堆上分配空间两倍容量增长:vector 增加(插入)新元素时,如果未超过当时的容量,则还有剩余空间,那么直接添加到最后(插入指定位置),然后调整迭代器。如果没有剩余空间了,则会重新配置原有元素个数的两倍空间,然后将原空间元素通过复制的方式初始化新空间,再向新空间增加元素,最后析构并释放原空间,之前的迭代器会失效。适用性:如果需要高效的随即访问,而不在乎插入和删除的效率,使用vector。vector拥有一段连续的内存空间原创 2020-07-07 21:41:58 · 423 阅读 · 0 评论 -
map和unordered_map的区别
一.头文件不同,分别是:#include<map>#include<unordered_map>二.其实现不同map:其实现是使用了红黑树unordered_map:其实现使用的是哈希表三.特点map:元素有序,并且具有自动排序的功能(因为红黑树具有自动排序的功能) 元素按照二叉搜索树存储的,也就是说,其左子树上所有节点的键值都小于根节点的键值,右子树所有节点的键值都大于根节点的键值,使用中序遍历可将键值按照从小到大遍历出来 空间占用率高,因为ma原创 2020-07-07 20:50:49 · 8481 阅读 · 0 评论