c++
Capsfly
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
malloc和new的时间效率的对比
可以看出new的时间效率确实要比malloc低一点,可能是要调用析构函数和构造函数的原因吧。原创 2023-04-22 23:17:43 · 874 阅读 · 1 评论 -
使用folly的small_vector.h,cmakelists.txt的设置
代码部分:原创 2023-04-22 14:01:43 · 257 阅读 · 0 评论 -
git reset【soft、hard、mixed】区别
soft会把你commit的内容回滚到add的区域。–hard则是直接丢弃。原创 2023-04-17 11:12:54 · 113 阅读 · 0 评论 -
C++ 11 async用法
看开源项目时候,经常看到先用去打包一个函数,然后用去异步调用,但是这样做感觉很奇怪,就是一个函数能不能不用打包,直接去异步调用就行了。原创 2023-04-05 22:54:05 · 152 阅读 · 0 评论 -
C++ 11异步函数
C++ 11提供了很多方法让我们进行异步调用,其中一个就是std::async,并且会返回一个对象,当我们在主线程中想继续调用时候就去调用,这个适用于处理网络等对实时效应要求比较高的地方。原创 2023-04-05 22:37:24 · 185 阅读 · 0 评论 -
多线程条件下如何进行输出信息
在日常的工作中,我们经常会用到多线程编程,但是如果使用普通的cout进行输出,会有问题。比如多线程同时竞争cout,会导致输出乱序看一下结果:可以看出,有部分输出乱序了,这是因为cout不是线程安全的。原创 2023-04-05 21:14:43 · 180 阅读 · 0 评论 -
os 无锁的实现机制
在看代码时候,看到了这个,就搜了一下,发现提到了一个关键的词叫做无锁,找了好多它的实现机制,终于找到了,mark一下。原创 2023-04-05 11:42:20 · 105 阅读 · 0 评论 -
C++ cout【重定向】到string的方法
在做dt测试的时候,遇到了一个问题,就是如何确认某个函数的运行结果是正确的(该函数内部主要的操作是更改内部变量),因此想到了输出所有的变量,但是在做测试的时候,。但是重新写一个输出到string中的函数不太值,就想到了用cout重定向到string。原创 2023-04-03 15:54:36 · 554 阅读 · 0 评论 -
C++链接错误(重复定义)
在.h中不要有函数的实现,否则多个.cpp包含的话会发生重复定义。翻译一下,就是在链接中进行了重复的定义。原创 2023-03-29 15:45:39 · 360 阅读 · 0 评论 -
容器是怎么判断迭代器种类的?
转载:https://blog.youkuaiyun.com/baidu_41388533/article/details/105449602?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163499396816780261931105%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163499396816780261931105&biz原创 2021-10-23 21:29:50 · 99 阅读 · 0 评论 -
c++迭代器
转载:https://blog.youkuaiyun.com/优快云_564174144/article/details/76231626?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163477803016780357267275%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163477803016780357267275&biz原创 2021-10-21 09:02:28 · 107 阅读 · 0 评论 -
virtual后面什么时候+=0?
转载:https://blog.youkuaiyun.com/weiling_shen/article/details/5448559?ops_request_misc=&request_id=&biz_id=102&utm_term=virtual%20%E5%90%8E%E9%9D%A2%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E5%8A%A0=0&utm_medium=distribute.pc_search_result.none-task-blo原创 2021-10-20 17:51:02 · 126 阅读 · 0 评论 -
c++ string和int的转换
转载:https://blog.youkuaiyun.com/qq_36328643/article/details/61195400?ops_request_misc=&request_id=&biz_id=102&utm_term=string%E7%B1%BB%E5%9E%8B%E5%8F%98%E6%88%90int&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-7-61原创 2021-10-13 20:40:34 · 89 阅读 · 0 评论 -
类外定义类的成员函数
转载:https://blog.youkuaiyun.com/luxooq/article/details/9379251?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163412266716780261946708%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163412266716780261946708&biz_id=0&原创 2021-10-13 19:04:19 · 183 阅读 · 0 评论 -
C++ 类重载int
转载网址:https://www.cnblogs.com/jzlzn/p/10229683.html原创 2021-10-12 10:50:17 · 614 阅读 · 0 评论 -
c++copy函数遇见区间重叠的替代方法-memmove
#include <iostream>#include <vector>#include <algorithm>#include<iterator>#include <cstring>using namespace std;int main(){ int *a=new int[10]; for(int i=0;i<10;i++) { a[i]=i; } memmove(原创 2021-10-08 15:53:32 · 222 阅读 · 0 评论 -
模板类及其派生类
定义模板类如下:template<class T, int dim>class A{public:T a[dim];}定义模板类的派生类:template<class T, int dim>class B : public A<T, dim>{public:T b[dim];}原创 2021-10-08 14:53:36 · 406 阅读 · 0 评论 -
指针函数和函数指针
https://blog.youkuaiyun.com/u010280075/article/details/88914424?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162218270616780261988913%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162218270616780261988913&biz_id=0&am原创 2021-05-28 18:32:00 · 84 阅读 · 0 评论 -
VS如何关闭逗号句号等符号的自动代码补全(C/C++)
原创 2021-05-07 14:56:15 · 900 阅读 · 0 评论 -
关于const char *(stack和文字常量区)
右边的字符串是常量,不可以被修改系统申请了两块内存空间去储存(想想也是,确实不可能遍历搜一遍)。输出地址:确实不同原创 2021-05-04 15:01:22 · 193 阅读 · 0 评论 -
不存在的E11:C++ 手写string及注意事项
手写string时候发现了一个问题,就是怎么进行这个操作,因为实现输入的数据量是不确定的。然后上网查了一下博客,发现一个合适的都没有,比如下面这个开了一个100的数组,那我直接输入一个1e5的量,不是直接爆炸吗。后来想到了解决方案,每次都是一个一个字符读,然后重载+=运算符。代码如下:#pragma once#include <cmath>#include <iostream>#include<assert.h>using namespace std原创 2021-05-03 15:58:59 · 165 阅读 · 1 评论 -
My string中的错误提醒(同一个变量new两次)
本来我想,这算不算同一个变量New了两次,会不会发生错误后来查找资料,答案如下:原创 2021-05-02 18:24:32 · 164 阅读 · 0 评论 -
NULLPTR和NULL
nullptr是c++11中的关键字,表示空指针//C语言中NULL定义#define NULL (void*)0 //c语言中NULL为void类型的指针,但允许将NULL定义为0//c++中NULL的定义#ifndef NULL#ifdef _cpluscplus //用于判定是c++类型还是c类型,详情看上一篇blog#define NULL 0 //c++中将NULL定义为整数0原创 2021-04-29 20:18:50 · 63 阅读 · 0 评论 -
文件的读写以及指针的使用
#include <iostream>#include <fstream>using namespace std;int val[]={1,2,3,9,6};int main(){ ofstream os("C:\\Apps\\qaq.txt",ios_base::out|ios_base::binary); os.write(reinterpret_cast<char *>(val),sizeof(val)); os.close();原创 2021-04-29 19:06:08 · 775 阅读 · 0 评论 -
c++文件的读写
原创 2021-04-29 18:46:11 · 103 阅读 · 0 评论 -
c++右值引用相关知识(寄存器)
#include <iostream>#include <sstream>using namespace std;template<class T>string toString( T&t){ ostringstream os; os<<t; return os.str();}int main(){ string a=toString(996); return 0;}然后clion报错的意原创 2021-04-29 18:27:44 · 238 阅读 · 0 评论 -
右值引用要加const&&函数重载注意事项
这里编译器报错说没有办法找到-号对应的函数重载的如下:因为Rational是一个即将销毁的变量,c++11可以引用它,但是不能修改它(老师好像讲过。。。。)验证如下:分割函数重载注意事项,不能仅有返回值不同,函数参数列表不同(个数,类型,顺序),函数签名(是否有const)...原创 2021-04-28 20:23:47 · 361 阅读 · 0 评论 -
2019CSPT2和map用法
#include <bits/stdc++.h>using namespace std;const int N=1000+50;int x[N],y[N];int cnt[10];int loc[10];int n;int nx,ny;unordered_map<int,unordered_map<int,int>>m;int jud(int x,int y){ if(m[x][y+1]&&m[x][y-1]&&原创 2021-04-25 19:06:30 · 238 阅读 · 0 评论 -
stl&&输入输出杂记
原创 2021-04-23 22:12:29 · 112 阅读 · 0 评论 -
setw和width
在C++中,setw(int n)用来控制输出间隔。例如:cout<<‘s’<<setw(8)<<‘a’<<endl;则在屏幕显示:s a//s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示’a’共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实际长度输出。setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。如cout<<setfi转载 2021-04-23 21:16:23 · 1002 阅读 · 0 评论 -
对于模板class里输入输出运算符的重载
先看代码#pragma once#include <iostream>using namespace std;template<class T>class Vector { int size; T* list;public: Vector(int size = 50) { //static_assert(size >= 0); this->size = size; list = new T[size]; } ~Vector() {原创 2021-04-22 10:53:58 · 313 阅读 · 0 评论 -
class对 赋值 和 初始化 的理解和区别
早上起来闲来无事写了段代码先看吧#include <bits/stdc++.h>using namespace std;class Num{ int real,imag;public: Num(int real,int imag):real(real),imag(imag){cout<<"calling constructing"<<endl;} Num(){} Num(const Num&n){ cout原创 2021-04-20 06:55:19 · 298 阅读 · 1 评论 -
对左值和右值的理解
#include <bits/stdc++.h>using namespace std;class Num{ int real,imag;public: Num(int real,int imag):real(real),imag(imag){cout<<"calling constructing"<<endl;} Num(const Num&n){ cout<<"calling copy"<<原创 2021-04-19 23:20:04 · 116 阅读 · 0 评论 -
vs编译错误自动显示错误列表
工具(调试)——>选项——>项目与解决方案——>常规——>若生成完成时有错误,则始终显示错误列表(T)如下图示例:将红色勾选出选择 对号 即可原创 2021-04-19 08:21:09 · 2974 阅读 · 0 评论 -
class里边的static成员的初始化
可以看出编译器报错了(其实有点看的不清楚解决方式:对于static成员在class里边,必须在class外边进行初始化,因为原创 2021-04-18 17:29:32 · 349 阅读 · 0 评论 -
return的值不能当左值
先看代码然后vs报错了原因显然:我们可以修改引用来解决原创 2021-04-17 21:13:03 · 122 阅读 · 0 评论 -
虚析构函数的使用
呜呜呜,我都要转专业了为什么还要看c++先看代码吧#include <iostream>using namespace std;class base1{public: ~base1(){ cout<<"destructing base1"<<endl;}};class base2: public base1{public: ~base2(){ cout<<"destructing base2"&l原创 2021-04-17 20:21:24 · 105 阅读 · 0 评论 -
虚函数的使用
先看错误代码(无virtual版本)#include <iostream>using namespace std;class base1{public: void show()const{ cout<<"showing base1"<<endl; }};class base2: public base1{public: void show()const{ cout<<"showing原创 2021-04-16 11:26:27 · 176 阅读 · 0 评论 -
什么时候使用复制构造函数
什么时候使用复制构造函数木头吃日历 2019-05-09 00:39:06 324 收藏版权有3种情况会使用复制构造函数:一个对象以值传递的方式传入函数体。一个对象以值传递的方式从函数返回。一个对象需要通过另外一个对象进行初始化。第三种情况非常常见且应用广泛,有的时候不知道啥情况呢,复制构造函数就被使用了————————————————版权声明:本文为优快云博主「木头吃日历」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://转载 2021-04-15 21:38:45 · 678 阅读 · 0 评论 -
为什么同类型的class可以访问同类的私有成员
先看代码#include <iostream>using namespace std;int cnt=0;class Num{ int real,imag; //static int cnt;public: Num(int a,int b):real(a),imag(b){cnt++;} ~Num(){ cnt--; } Num(const Num &a){//这里本来认为应该会出现编译报错,但是并没有原创 2021-04-15 21:37:01 · 169 阅读 · 1 评论
分享