c++
杳杳捞到月亮了吗
这个作者很懒,什么都没留下…
展开
-
【c++】__builtin_popcount()函数
__builtin_popcount()是GCC提供的内建函数,主要作用是计算x表示成二进制时有多少个1(32位)。例如:int x = 7; // 7 = 111;int n = __builtin_popcount(x); //n = 3;原创 2022-04-05 10:36:49 · 1940 阅读 · 0 评论 -
【c++】lower_bound( )和upper_bound( )
lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找:(1)在从小到大的排序数组中:lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,原创 2021-12-11 10:04:46 · 183 阅读 · 0 评论 -
【c++】map容器的迭代器
c++ 里面的map容器的迭代器里面 有个first 和 second例如map<string, int> m;m["one"] = 1;map<string, int>::iterator p = m.begin();p->first; // 这个是 string 值是 "one"p->second; //这个是 int 值是 1原创 2021-12-10 10:26:04 · 808 阅读 · 0 评论 -
【c++】set.count()用法
set::count()是C++ STL中的内置函数,它返回元素在集合中出现的次数。由于set容器仅包含唯一元素,因此只能返回1或0。用法:set_name.count(element)参数:该函数接受一个强制性参数element,该元素指定要返回其计数的元素。返回值:该函数返回1或0,因为该集合仅包含唯一元素。如果设置的容器中存在该值,则返回1。如果容器中不存在它,则返回0。实例:#include <bits/stdc++.h> using namespace std; in原创 2021-12-04 10:23:07 · 18324 阅读 · 0 评论 -
【c++】pair的用法
1、概念每个pair对象可以存储两个值,这两个值可以是不同的数据类型。存储的值可以是基本数据类型也可以是自定义数据类型。2、初始化:(1)pair<int, int> p1(1, 2);(2)pair<int, int> p2(p1);//用已有的对象初始化(3)pair<int, float> p3(1, 1.2);(4)pair<int, int> p4;//没有显示初始化,自动执行默认初始化操作。p4为(0,0)2、使用make_pair(原创 2021-11-29 08:20:04 · 856 阅读 · 0 评论 -
【c++】push_back()和emplace_back()区别
push_back():该成员函数的功能是在 vector 容器尾部添加一个元素,用法也非常简单,例如: #include <iostream> #include <vector> using namespace std; int main() { vector<int> values{}; values.push_back(1); values.push_back(2);原创 2021-11-28 10:35:05 · 180 阅读 · 0 评论 -
【c++】二分法区间的边界条件理解
二分法边界条件理解:二分查找涉及的很多的边界条件,逻辑比较简单,但就是写不好。例如到底是 while(left < right) 还是 while(left <= right),到底是right = middle呢,还是要right = middle - 1呢?写二分法经常写乱,主要是因为对区间的定义没有想清楚,区间的定义就是不变量。要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。写二分法,区间的定义一般为两种原创 2021-11-21 11:19:02 · 538 阅读 · 1 评论 -
【c++】for auto的用法
for auto的用法:for(auto iter:vec)不改变迭代对象的值;for(auto &iter:vec)可以改变迭代对象的值。==>两者都可以获取到迭代容器中的值,但是使用auto iter时不会对容器对象造成改变,而使用auto &iter对于iter的任何修改将直接修改容器内对应的值。举例说明:#include <iostream>#include <vector>using namespace std; void p原创 2021-11-21 10:52:39 · 2658 阅读 · 0 评论