![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
记录C/C++
fkuner
这个作者很懒,什么都没留下…
展开
-
全面剖析C++中的const
https://www.runoob.com/w3cnote/cpp-const-keyword.html原创 2020-11-04 22:50:48 · 55 阅读 · 0 评论 -
C++虚函数表剖析
面试完整理一下https://blog.csdn.net/lihao21/article/details/50688337https://blog.csdn.net/weixin_43329614/article/details/89103574原创 2020-11-04 22:42:10 · 43 阅读 · 0 评论 -
详解C++智能指针
在C++中,动态内存的管理是通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;`delete,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极其困难的。有时我们会忘记释放内存,在这种情况下就会产生内存泄漏;有时在尚有指针的引用内存的情况下我们就释放了它,在这种情况下就会产生引用非法内存的指针,也就是野指针。为了更容易(同时也更安全)地使用动态内存,C++提供了四种智能指原创 2020-11-04 18:05:21 · 69 阅读 · 0 评论 -
CMake入门详解
入门推荐一个不错的教程:CMake入门实战在Linux下使用CMake构建应用程序添加第三方库的一种方法最近尝试使用CLion这款IDE来写C++程序。由于CLion的工程都是基于CMake来构建的,因此导入第三方库就需要在CMake文件中进行配置。这里把利用CMake导入第三方库的过程记录下来。CMake的配置信息写在了CMakeList.txt文件中。在CMakeList.txt文件...原创 2020-03-27 11:00:28 · 292 阅读 · 0 评论 -
C++比较字符串的字典序
strcmp(s1, s2)在 C 语言中,我们可以使用 strcmp() 函数比较 char* 类型字符串的字典序。当字符串 s1 的字典序小于字符串 s2 的字典序时,返回值 < 0。当字符串 s2 的字典序大于字符串 s1 的字典序时,返回值 > 0。当字符串 s1 的字典序等于字符串 s2 的字典序时,返回值 = 0。#include <iostream>using namespace std;int main() { char s1[2] = "转载 2020-10-23 16:40:10 · 4093 阅读 · 0 评论 -
快速排序,看这一篇就够了!
地方原创 2020-10-22 15:59:11 · 68 阅读 · 0 评论 -
C++数字/字符串转换
数字To字符串1. 利用<sstream>的stringstream,可以是浮点数#include <iostream>#include <sstream>using namespace std;int main(){ double x; string str; stringstream ss; cin >> x; ss << x; ss >> str; cout &转载 2020-10-17 17:02:12 · 77 阅读 · 0 评论 -
C++ [xxx] does not name a type
[xxx] does not name a type class does not name a type出现这个编译错误主要有四个可能原因,现总结如下:引用的类命名空间未包含引用的类头文件未包含包含了头文件,或者已经前置声明了,则说明所引用的类名写错。循环引用头文件前置声明要素:前置声明需要注意以上提到的四点尽可能的采用前置声明(做到只有包含继承类的头...原创 2020-05-05 18:51:32 · 2204 阅读 · 0 评论 -
C++ typedef的继承问题
template <class T1, class T2>struct base1{ typedef T1 first_type; typedef T2 second_type;};template <class T1, class T2>struct sub1 : public base1<T1, T2>{ typenam...原创 2020-05-04 23:58:34 · 703 阅读 · 0 评论 -
C++ friend详解
私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦。C++ 是从结构化的C语言发展而来的,需要照顾结构化设计程序员的习惯,所以在对私有成员可访问范围的问题上不可限制太死。C++ 设计者认为, 如果有的程序员真的非常怕麻烦,就是想在类的成员函数外部直接访问对象的...原创 2020-05-04 23:35:35 · 8670 阅读 · 1 评论 -
C++ typedef和typedef typename的区别
直接上代码template<typename T>class A{public: typedef typename T::B TB; typedef T T_type;}因为T是一个模版实例化时才知道的类型,所以编译器更对T::B不知所云,为了通知编译器T::B是一个合法的类型,使用typename语句可以避免编译器报错。也就是说,如果要重命名模版T的成员,需要加ty...原创 2020-05-04 22:55:48 · 292 阅读 · 0 评论 -
C++线程池实现
为什么要使用线程池?目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是是“即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如...转载 2020-04-24 00:34:07 · 132 阅读 · 0 评论 -
C++11特性:decltype关键字
https://zh.cppreference.com/w/cpp/language/decltypehttps://www.cnblogs.com/QG-whz/p/4952980.htmlhttps://www.devbean.net/2016/06/improved-type-inference-in-c11/原创 2020-04-23 23:33:27 · 150 阅读 · 0 评论 -
C++ ERROR:error: passing 'XXX' as 'this' argument of 'XXX' discards qualifiers
遇到了如题目的这种错误:error: passing ‘XXX’ as ‘this’ argument of ‘XXX’ discards qualifiers如何产生的?我将一个const变量传入了一个非const函数,这是产生的场景。如何解决?两种方式:方式1:将const修饰的变量的const去掉,例如之前是const Book book;现在改成Book book;方式2:...原创 2020-04-22 17:25:16 · 695 阅读 · 1 评论 -
CLion快捷键
Alt + Shift + ⬅️:跳转返回原创 2020-04-18 17:22:31 · 238 阅读 · 0 评论 -
STL中vector的扩容和回收
vector求容器大小的函数:size():返回当前vector元素的个数。capacity():返回当前vector中最大能够存储的元素的个数。vector的扩容情况1:默认扩容(元素添加)int main(){ vector<int> vec; //扩容1:当元素添加时导致的扩容。扩容为1.5或者2倍,跟编译器有关。 for(int i=0;i<5;i+...原创 2020-04-03 20:37:42 · 350 阅读 · 0 评论 -
#Pragma Pack(n)与内存分配
什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。...原创 2020-04-02 09:21:06 · 96 阅读 · 0 评论 -
C++多线程编程
C++多线程编程原创 2020-03-31 22:39:50 · 152 阅读 · 0 评论 -
浅析C++中引用与指针
浅析C++中引用与指针原创 2020-03-27 19:25:22 · 118 阅读 · 0 评论 -
C++强制类型转换符的使用(static_cast、reinterpret_cast、const_cast和dynamic_cast)
将类型名作为强制类型转换运算符的做法是C语言的老式做法,C++ 为保持兼容而予以保留。C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换:static_cast、reinterpret_cast、const_cast 和 dynamic_cast。强制类型转换是有一定风险的,有的转换并不一定安全,如把整型数值转换成指针,把基类指针转换成派生类指针,把一种函数指针转换成另一种函数指...转载 2020-03-27 09:26:37 · 355 阅读 · 0 评论 -
C++中的mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟C++中的const是反义词在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中我们知道,被const关键字修饰的函数的一个重要作用就是为了能够保护类中的成员变量。即:该函数可以使用类中的所有成员变量,但是不能修改他们的值。然而,在某些特殊情况下,我们还是需要...转载 2020-03-24 21:17:15 · 77 阅读 · 0 评论 -
C++中explicit关键字的使用
https://www.cnblogs.com/gklovexixi/p/5622681.htmlhttps://www.cnblogs.com/rednodel/p/9299251.html转载 2020-03-24 15:36:22 · 318 阅读 · 0 评论