C++
文章平均质量分 71
记录并分享C++知识
技术探索者
这个作者很懒,什么都没留下…
展开
-
C:算术移位和逻辑移位傻傻分不清楚
C:算术移位和逻辑移位傻傻分不清楚原创 2023-12-07 16:25:13 · 291 阅读 · 1 评论 -
C\C++:原子计数操作 之__syn_fetch_and_add性能研究
C\C++:原子计数操作 之__syn_fetch_and_add性能研究原创 2023-11-29 15:34:45 · 554 阅读 · 0 评论 -
C++:类中的静态成员函数以及静态成员变量
C++:类中的静态成员函数以及静态成员变量原创 2023-09-23 10:52:32 · 266 阅读 · 0 评论 -
C++:组播代码实现
C++:组播代码实现原创 2023-09-18 14:49:35 · 485 阅读 · 0 评论 -
Linux:无法接收组播数据
Linux:无法接收组播数据原创 2023-09-18 13:56:55 · 1903 阅读 · 0 评论 -
C++:vector里插入pair
C++:vector里插入pair原创 2023-09-15 11:35:06 · 944 阅读 · 0 评论 -
STL中list,vector,deque,map,set区别、联系和使用场景原理
一、Vector:动态数组 vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随机存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。(中间插入和删除效率低)vector的基本原理如下:它采用线性空间存储数据。如果空间不够,则另外分配新的两倍大小的空间,然后把旧空...转载 2021-06-23 11:26:41 · 1503 阅读 · 0 评论 -
C++函数后面加“:”的含义
1、c++成员函数后面跟“:”表示的是赋值,这是c++的特性如下:A( int aa, int bb ):a(aa),b(bb){}相当于A( int aa, int bb ){a=aa;b=bb;}2、c++构造函数后面跟“:”也表示赋值1)对含有对象成员的对象进行初始化类line有两个私有对象成员startpoint、endpoint,line的构造函数写成:line(int sx,int sy,int ex,int ey):startpoint(sx,sy),en.转载 2021-03-26 11:47:20 · 2333 阅读 · 0 评论 -
C++ : operator bool () 和bool operator ==()
operator bool () 提供一个本类型到bool的隐式转换,不允许使用参数。bool operator ==()可以分为bool operator ==( const bool& other),bool operator ==( const T& other),T代表类型。即与bool类型的比较,和与本类的比较。原创 2021-06-17 15:05:18 · 9590 阅读 · 0 评论 -
C++ :标准转换运算符const_cast
C++继承并扩展C语言的传统类型转换方式,最后留下了一些关于指针和引用上的转换问题,没有做详细地讲述。C++相比于C是一门面向对象的语言,面向对象最大的特点之一就是具有“多态性(Polymorphism)”。要想很好的使用多态性,就免不了要使用指针和引用,也免不了会碰到转换的问题,所以在这一篇,就把导师讲的以及在网上反复查阅了解的知识总结一下。C++提供了四个转换运算符:const_cast <new_type> (expression) static_cast <new_t转载 2021-06-29 14:48:25 · 180 阅读 · 0 评论 -
C++ :dynamic_cast 深入浅出
C++ :dynamic_cast原创 2021-07-05 11:43:28 · 631 阅读 · 2 评论 -
C++ : 多态机制
什么是多态 顾名思义就是同一个事物在不同场景下的多种形态。静态多态函数重载就是一个简单的静态多态int Add(int left, int right){ return left + right;}double Add(double left, int right){ return left + right;}int main(){ Add(10, 20); //Add(10.0, 20.0); //这是一个问题代码 Ad..转载 2021-05-08 15:20:43 · 132 阅读 · 0 评论 -
C++11并发学习之六:线程池的实现
为什么要使用线程池?目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是是“即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于不停的创建线...转载 2021-03-26 11:42:59 · 221 阅读 · 0 评论 -
c++:三种实例化对象方式
c++:三种实例化对象方式原创 2023-09-15 10:41:14 · 1109 阅读 · 0 评论 -
C++:switch语句报错jump to case label [-fpermissive]
C++:switch语句报错jump to case label [-fpermissive]原创 2023-09-15 11:07:14 · 2741 阅读 · 0 评论 -
c++ : 不能被继承的成员函数
C++中,有三类成员函数不能被子类继承,分别是:构造函数(包括拷贝构造)、析构函数和赋值运算符重载函数。原创 2021-06-23 14:51:06 · 1893 阅读 · 0 评论 -
C++ :ofstream 和 ifstream 用法详解
[导读] ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O. stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字...转载 2021-04-30 17:09:51 · 10621 阅读 · 1 评论 -
C++ 11 之 auto和decltype的区别
通过《C++ auto》和《C++ decltype》两节的学习,相信大家已经掌握了 auto 和 decltype 的语法规则以及使用场景,这节我们将 auto 和 decltype 放在一起,综合对比一下它们的区别,并告诉大家该如何选择。语法格式的区别auto 和 decltype 都是C++11 新增的关键字,都用于自动类型推导,但是它们的语法格式是有区别的,如下所示:auto varname = value; //auto的语法格式decltype(exp) varname [=.转载 2021-03-29 16:05:57 · 343 阅读 · 0 评论 -
C++20 新增特性
新增关键字(keywords) 新增标识符(Identifies) 模块(Modules) 优点 创建模块 引用模块 import 头文件 Ranges Ranges是什么 ? 好处 相关功能 例子 协程(Coroutines) 什么是协程 例子(VC++) Concepts 如何定义 使用 例子 Lambda 表达式的更新 [=, this] 需要显式捕获this变量 模板形式的 Lambda 表达式 Lambda 表达式.转载 2021-02-19 11:42:34 · 761 阅读 · 1 评论 -
C++ : 深拷贝和浅拷贝的区别
浅拷贝只是对指针的拷贝,浅拷贝后两个指针指向同一个内存空间;深拷贝不仅对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。当对一个已知对象进行拷贝时,编译系统会自动调用一种构造函数——拷贝构造函数,如果用户未定义拷贝构造函数,则会调用默认拷贝构造函数。当拷贝一个基类指针到派生类时,如果调用系统默认的拷贝构造函数,这时只是对指针进行拷贝,两个指针指向同一个地址,这就会导致指针被分配了一次内存,但内存被释放了两次(两次调用析构函数),造成程序崩溃。所以在对含有原创 2021-06-25 16:09:42 · 619 阅读 · 0 评论 -
C++:vector中pair的排序方法
C++:vector中pair的排序方法原创 2023-09-15 11:12:45 · 1455 阅读 · 0 评论