![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
littleBoy777
这个作者很懒,什么都没留下…
展开
-
c++中vector在push_back时调用移动构造函数
c++构造函数的调用c++11中构造函数包括:默认构造函数拷贝构造函数移动构造函数拷贝赋值函数移动赋值函数那么请思考下面的一个案例中其调用的顺序是怎样的:class A {public: A() { printf("A()--默认构造\n"); } ~A() { printf("~A()--析构函数\n"); } A(const A &a) { printf("A(const A&原创 2021-12-23 09:44:39 · 2213 阅读 · 5 评论 -
c++指针作为返回参数
c++中可以将引用和指针来作为返回的参数,但是当将指针作为返回参数的时候,犯了一个错误。导致程序fault。错误的示例:void getData(unordered_map<int, int> sourceData, int* target2) { if (sourceData.empty()) { return; } auto point = sourceData.find(1); if (point == sourceData.end()) { retur原创 2021-08-26 15:35:59 · 572 阅读 · 0 评论 -
c++函数处理结果返回的三种方法
函数处理结果返回的三种方法:传递引用,传递指针,放回值一个问题是:设计C++函数传参时如何决定使用指针还是引用?关于讨论在知乎上有一个比较好的回答:设计C++函数传参时如何决定使用指针还是引用还有就是返回指针的形式来返回一个结果:#include <iostream>#include <unordered_map>#include <unordered_set>#include "glog/logging.h"#include <gflags/gfl原创 2021-08-19 17:19:10 · 2306 阅读 · 0 评论 -
GLOG中的(Verbose Logging)VLOG的使用
gflag使用小案例:#include <iostream>#include <vector>#include <map>#include <set>#include <list>#include <deque>#include <stack>#include <queue>#include <algorithm>#include <unordered_map>#in原创 2021-08-18 16:33:32 · 4132 阅读 · 2 评论 -
c++容器常用的方法
c++中常用容器的方法当初刷题的时候对于每一个容器的方法都是熟记于心,但是等过一段时间以后就会又忘记,有没有一个比较好的标识统计表格呢?在这里放几个c++查阅经常用到的几个网站,这几个网站上对于c++的使用和语法都有非常,详细的说明和示例,在这几个网站上你能看到很多意向不到的惊喜,比如上面这张图:cppreferencegcc.gnu.orgcplusplus...原创 2021-08-01 20:59:37 · 153 阅读 · 0 评论 -
C++处理大数据的问题
使用bitset处理在海量数据中查询是否有某些数的存在背景:是上亿无序的整数中查询某个数是否存在其中,如果使用遍历的方法的话时间复杂度为n,如果我们要多次查询,那岂不是不行。先进行排序,让后使用二分法查找,听上去还可以,但是对上亿的整数进行排序最优的时间复杂度为nlog(n),也不是很理想。使用bitmap算法,每一个二进制位表示一个数,第100个bit表示整数100,依次类推。我们可以借助c++中的bitset来实现。设计:使用一个7亿大小的bitset来存放出现的数字,将从100到200原创 2020-09-15 10:15:13 · 1378 阅读 · 0 评论 -
C++中内存对齐与对象指针指向空指针的对象大小
C++中内存对齐与对象指针指向空指针的对象大小首前看一段程序,判断一下其输出结果是什么:#include <iostream>#include <vector>#include <algorithm>#include <bitset>using namespace std;class A{ int a; int b; double c; char name; char name2;public:原创 2020-07-04 11:06:28 · 438 阅读 · 0 评论 -
使用valgrind进行c++内存泄漏检测
初步使用valgrind进行c++内存泄漏检测在Ubuntu下面安装valgrind使用:sudo apt-get install valgrind就可以安装下面是要进行测试的文件结构:// tree.h#ifndef _TREE_#define _TREE_typedef struct node{ struct node *l; struct node *r; char v;// node(node *ll,node *rr,char ch):l(ll)原创 2020-06-23 16:16:31 · 436 阅读 · 0 评论 -
clion远程开发中遇到Setting Remote host Mappings: Local path is out of project
clion远程开发中遇到Setting Remote host Mappings: Local path is out of project用clion进行远程开发十分的方便,但是在这个过程中遇到了各种各样的问题。下面是我的使用开始:如何在 SSH 下远程使用 IDE 编译和调试? - 阿李的回答 - 知乎在使用的过程中突然cmakeApplication就消失了,然后在配置中发现提示:Local path is out of project没有找到方法。于是我新建了一个文件夹,将远程的文件全部原创 2020-06-10 17:13:34 · 1028 阅读 · 0 评论 -
实现字符串拷贝、内存拷贝函数,考虑内存折叠的情况
实现字符串拷贝 内存拷贝函数,考虑内存折叠的情况之前面试中面试官让实现一个内存拷贝函数时,一脸懵逼,只知道有内存拷贝函数,有几个参数都不记得了,于是面试官让实现一个字符串拷贝函数,就写了一下,但是写完以后面试官说我没有考虑到内存折叠的情况,当时真的不知道什么是内存折叠,也没有写出来。在这里总结一下常用的字符串处理函数的实现,以及内存拷贝考虑内存折叠时的情况:字符串拷贝内存折叠:拷贝过程中覆盖了还未处理的字符。#include <iostream>#include <cstring原创 2020-05-30 09:22:56 · 327 阅读 · 0 评论 -
基于epoll的聊天室总结
项目参考:epoll实现高并发聊天室项目基本介绍:基于epoll机制,实现多客户在线实时通信。通过此项目学习了基本的TCP客服、服务程序的基本流程以及epoll的使用。一边查看unix网络编程卷一,对原来的项目做了稍稍的改变服务端:创建了一个IPv4套接字地址//用户连接的服务器 IP + port struct sockaddr_in serverAddr;将服务器的ip地址和端口号填入套接字地址结构 serverAddr.sin_family = PF_INET; s原创 2020-05-24 16:38:46 · 413 阅读 · 0 评论 -
C++知识点回顾
C++知识点回顾第二章 基本内置类型类型转换 无符号类型的表达式 无符号数减去一个数要保证不能是负数。定义在函数体内部的内置类型将不被初始化声明一个变量而不是定义一个变量可以在变量名前面加上extern。嵌套的作用域,使用 :: 来显示的说明全局变量。//显示说明使用全局变量reusedcout<<::reused<<endl;符合类型引用:对象的另外一个名字,引用本身不是一个对象,所以不能定义引用的引用。指针:指向另外一个种类型的符合类型。void* 指原创 2020-05-22 20:28:27 · 107 阅读 · 0 评论 -
c++学习阶段性总结
c++学习阶段性总结2020年05月回到学校。第一次接触c++是在考研结束后,闲的的没事就去图书馆借了一本红色的谭浩强的c++程序设计,总体浏览了一遍,因为学过java,所以面向对象的思想很容易就能接受,算是对C++有了一个基本的认识,但是也只是停留在基本认识的阶段。研一入学,发现机器学习深度学习异常的火热,大家都在学习Python用Python,我也不列外的加入了这个行列,后来选修了与c++相关的一门课程,于是又唤醒了对C++的记忆。自己的安排中包括要每周练习两道LeetCode,于是在网上找来一套原创 2020-05-19 10:05:40 · 275 阅读 · 0 评论 -
VIM使用简记
Vim普通模式进入编辑模式:i inserta appendo open a line blowI insert in line beforA append in line end O open a line abovectrl [ 可以跟esc一样退出编辑模式gi 快速回到退出时的位置并进入编辑模式编辑模式下:ctrl w 删除上一个单词ctrl h 删除上一个字符ctrl u 删除一行通过使用上面的命令可以解决复制代码时的缩进问题。普通模式下:原创 2020-05-18 12:34:11 · 168 阅读 · 0 评论 -
set, multiset, unordered_set, map, multimap, unordered_map的区别
set, multiset, unordered_set, map, multimap, unordered_map的区别set, multiset, unordered_set, map, multimap, unordered_map都是关联型容器set和multiset以红黑树作为底层实现,不可以通过迭代器来修改元素的值,如果任意改变set元素的值,会破坏set的组织,拥有和list某些...原创 2020-04-09 11:56:10 · 261 阅读 · 0 评论 -
C++内存对齐
C++内存对齐有内存对齐的好处:内存中成员变量的存放更加有序,简化数据存取的步骤,提高运行效率。内存对齐的规则:(1) 结构体第一个成员的偏移量(offset)为0,以后每个成员相对于结构体首地址的 offset 都是该成员大小与有效对齐值中较小那个的整数倍,如有需要编译器会在成员之间加上填充字节。(2) 结构体的总大小为 有效对齐值 的整数倍,如有需要编译器会在最末一个成员之后加上...原创 2020-04-02 17:37:46 · 104 阅读 · 0 评论 -
C++虚函数表机制
C++虚函数表机制虚函数对类对象内存分布的影响class Base1{public: int base1_1; int base1_2; virtual void base1_fun1() {}};当类中添加一个虚函数后,类对象的成员变量base1_1和base1_2相对于没有虚函数时,地址会向后偏移4。原因在最前端添加了一个虚函数表指针,指向虚函数表。当类...原创 2020-03-29 18:04:52 · 172 阅读 · 0 评论 -
C++统计输入字符串中的单词数量
结合C++中的**size_t find_first_not_of (const char* s, size_t pos, size_t n) const;方法和size_t find_first_of (const char* s, size_t pos, size_t n) const;**来统计字符串中单词的个数。#include <iostream>#include <...原创 2020-01-08 16:45:34 · 2618 阅读 · 0 评论 -
C++中的istringstream 的用法
C++中的istringstream 的用法参考博客在写leetcode上写一道关于字符串计算式题目Basic Calculator II时,在讨论区看到有人使用istringstream,就查了一下,istringstream是一个比较有用的c++的输入输出控制类。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就...原创 2019-09-20 15:55:35 · 4388 阅读 · 0 评论