c++
YunusQ
Dig Code
展开
-
C++ 计算二进制数中1的个数 可用于负数 无符号数 且无需遍历整数所有位
C++计算二进制数中1的个数 试用于负数 且无需遍历整数所有位先上代码 c++int CountOnes(int n) { int count = 0; while(n) { ++count; n = n & (n - 1); } return count;}这个方法的主要思想就是找到当前数字中最靠右的1,也就是从右往左的第一个1思路简单总结:n - 1(n不为0时)会使得n的最右侧第一个1以及该位的右侧的所有位取反,此时原创 2022-03-27 14:24:17 · 319 阅读 · 0 评论 -
C++ 优先队列 堆 priority_queue的使用 以及内部使用结构化pair的排序的用法 auto在其中的用法(结构化绑定 C++17以上)
C++ 优先队列 priority_queue的使用 以及内部使用结构化pair的排序的用法 auto在其中的用法(结构化绑定 C++17以上)定义 初始化一个优先队列//升序队列priority_queue <int,vector<int>,greater<int> > q;//降序队列priority_queue <int,vector<int>,less<int> >q;升序的使用pair的优先队列 默认对pair的原创 2022-03-14 10:38:06 · 1837 阅读 · 0 评论 -
C++ string中的find()函数 总结 查找所有子串在母串中出现的次数和位置
1.find基础1.string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos。(返回值可以看成是一个int型的数)#include<cstring>#include<cstdio>#include<iostream>using namespace std;int main(){ ////find函数返回类型 size_type string s("1a2b3c4d5e6f7jkg8h9i原创 2020-10-14 09:44:43 · 13380 阅读 · 0 评论 -
C++ 新特性 emplace_back() 与 push_back()的区别
C++ 新特性 emplace_back() 与 push_back()的区别今日在leetcode中发现了emplace_back(),然后并不知道他是干什么用的现在搜索了一下 做一个总结vector是我们常用的容器,向其中增加元素的常用方法有:emplace_back和push_back两种。push_bach():首先需要调用构造函数构造一个临时对象,然后调用拷贝构造函数将这个临时对象放入容器中,然后释放临时变量。emplace_back():这个元素原地构造,不需要触发拷贝构造和转移构原创 2020-08-22 11:30:00 · 358 阅读 · 0 评论