
C++学习笔记
小白日常c++遇到的一些知识记录
YFaris
这个作者很懒,什么都没留下…
展开
-
C++中常用函数 (持续更新ing...)
List item原创 2021-10-22 15:49:54 · 208 阅读 · 0 评论 -
C++实现生产者消费者
为应对系统的通信上消息收发的高耦合度,在接受和发送消息后设计一个缓存队列,并使用多线程生产者-消费者来进行收发解耦。避免通信上的拥堵情况。利用C++内置函数实现生产者-消费者功能:private: std::deque<T> queue_; //缓存队列 size_t size_limit_; //缓存队列大小的限制 std::mutex lock_; //互斥锁 std::condition_variable empty_, full_; //并发条件变量类 s原创 2021-10-22 15:26:47 · 3242 阅读 · 1 评论 -
C++堆栈
一般的由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)。2、堆区(heap)。3、静态数据区(全局)。5、程序代码区。那在多线程环境下的堆栈是如何分配的呢?我们只需要记住以下两点:每个线程一个栈,每个进程一个堆。请看典型的内存分布图。不同的段可能被加载器映射到相距很遥远的位置。 变量在内存地址的分布为:堆-栈-代码区-全局静态-常量数据 同一区域的各变量按声明的顺序在内存的中依次由低到高分配空间(只有未赋值的全局变量是个例外)。 全局变量和转载 2021-10-17 16:57:17 · 537 阅读 · 0 评论 -
ubuntu安装g++/gcc 7版本
安装gcc-7/g++ -7sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install gcc-7sudo apt-get install g+±7修改本地gcc/g++版本,首先设置优先级sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100sudo update-alternat原创 2021-07-26 20:03:02 · 4995 阅读 · 0 评论 -
C++ 匿名函数
1.概念:C++11提供了类似与Python的lambda表达式的方式,称为匿名函数,其好处是:使用匿名函数,可以免去函数的声明和定义。这样匿名函数仅在调用函数的时候才会创建函数对象,而调用结束后立即释放,所以匿名函数比非匿名函数更节省空间。2.详解其表达形式如下:capture->return-type{body}如果没有参数,空的圆括号()可以省略.返回值也可以省略,如果函数体只由一条return语句组成或返回类型为void的话.形如:capture{body} Lambda函数可原创 2021-07-22 10:13:20 · 1565 阅读 · 0 评论 -
Ubuntu gcc安装及切换
ubuntu安装gcc5.4版本,亲测有效!Ubuntu18.04 gcc,g++ (4.8,5,7.4 )安装及切换一般操作如下(详细操作见上面的两篇博客):在这里插入代码片# 1.see your versiongcc --version # 2.sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get update# 3. 查看你可以安装的gcc5版本apt-cache policy gcc-5# 4.根据上面的转载 2021-07-21 15:57:29 · 861 阅读 · 0 评论 -
C++内联函数( inline)详解
函数的使用避免了代码的重写,进而减小了程序的体积。但是函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。此外,函数执行 return 语句返回时,需要从栈中回收形参和局部变量占用的存储空间,然后从栈中取出返回地址,再跳转到该地址继续执行,这个过程也要耗费时间。一般情况下,这个开销可以忽略不计,但是当函数体较为简单并且被大量重原创 2021-07-21 15:45:21 · 411 阅读 · 0 评论