![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
C++学习
我要精通C++
这个作者很懒,什么都没留下…
展开
-
2021-02-02
引用阅读1-多线程下变量的原子操作atomic原创 2021-02-02 18:34:21 · 261 阅读 · 0 评论 -
C++学习笔记汇总
《深入理解C++11:C++新特性解析》【深入理解C++11:C++新特性解析】第1章 新标准的诞生【深入理解C++11:C++新特性解析】第2章 保证稳定性和兼容性 测试代码整理【深入理解C++11:C++新特性解析】第3章 通用为本 专用为末 测试代码整理【深入理解C++11:C++新特性解析】第4章 新手易学 老手易用 测试代码整理【深入理解C++11:C++新特性解析】第5章 提高类型安全 测试代码整理【深入理解C++11:C++新特性解析】第6章 提高性能及操作硬件的能力原创 2021-01-13 14:41:06 · 444 阅读 · 0 评论 -
shared_ptr
【代码】shared_ptr。原创 2023-08-03 10:17:14 · 202 阅读 · 0 评论 -
【C++实现】找出当前文件夹下存在的文件
文件遍历原创 2022-12-24 22:23:26 · 1451 阅读 · 1 评论 -
《C++高级编程》20.7 元组 Tuple
tuple原创 2022-07-23 19:53:56 · 649 阅读 · 0 评论 -
DEMYSTIFYING C++ I/O
I/O原创 2022-07-13 23:13:49 · 281 阅读 · 0 评论 -
C++ INDEX
PROFESSIONAL C++ INDEX原创 2022-07-13 10:55:38 · 837 阅读 · 0 评论 -
WRITING EFFICIENT C++
C++原创 2022-07-12 13:44:57 · 297 阅读 · 0 评论 -
C++标准库第二版目录
书的索引原创 2022-06-01 00:55:10 · 464 阅读 · 0 评论 -
C++中的count和count_if
1.源码/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/stl_algo.htemplate <typename _InputIterator, typename _Tp>inline typename iterator_traits<_InputIterator>::difference_typecount(_InputIterator __first, _InputIterator __last, const _T.原创 2022-05-29 20:55:50 · 535 阅读 · 0 评论 -
C++从文件中读数据及向文件中写数据
1.从文件中读数据#include<iostream>#include<fstream>#include<string>#include<vector>using namespace std;int main(int argc, char**argv){ fstream myfile; myfile.open("./test.txt", ifstream::in); if (myfile.is_...原创 2022-05-22 14:02:07 · 3950 阅读 · 0 评论 -
玩具版本~~
#include <iostream>using namespace std;typedef struct version{ int firstClassVersion; int secoidClassVersion; int thirdClassVersion;} Version;Version operator++(Version &ver){ if (ver.firstClassVersion > 99) { .原创 2022-05-19 15:12:08 · 130 阅读 · 0 评论 -
C++中时间串与Unix时间之间的相互转换
1. UNIX时间戳转成时间字符串函数// Unixtime2Str.cpp#include <iostream>#include <time.h>void gettimestr(time_t& time, tm* lotime,char* buf){ lotime = localtime(&time); strftime(buf, 64, "%Y:%m:%d %H:%M:%S", lotime);}int main(){原创 2022-05-16 10:39:52 · 1125 阅读 · 0 评论 -
C++11 条件变量类
1.<condition_variable>头文件<condition_variable>头文件提供了条件变量的定义。其作为基本同步机制,允许被阻塞的线程在某些条件达成或超时时,解除阻塞继续执行。头文件内容:namespace std{ enum class cv_status { timeout, no_timeout }; class condition_variable; class condition_variable_any;}...原创 2022-05-07 08:16:12 · 1003 阅读 · 0 评论 -
List如何正确地在遍历时删除元素-EFFECTIVE STL 9
for (list<int>::iterator iter=l.begin();iter!=l.end;) { if condition (*iter)) { iter=l.erase(iter); } else { ++iter; } }...原创 2022-05-05 22:32:29 · 819 阅读 · 0 评论 -
【C++标准库】10.STL函数对象(仿函数)及Lambda
0.大纲1.Function Object(函数对象)的概念所谓function object(或者说functor),是一个定义了operator()原创 2022-04-29 23:30:50 · 1283 阅读 · 0 评论 -
【C++标准库 第二版】STL算法
原创 2022-04-29 22:54:37 · 938 阅读 · 0 评论 -
【C++标准库 第二版】11.3 for_each()算法
for_each()算法非常灵活,它允许你以不同的方式访问、处理、修改每一个元素. 然而请注意,自C++11起,range-based for循环提供了更方便更自然的行为. 因此,for_each()恐将日渐丧失其重要性.原创 2022-04-29 20:52:48 · 1209 阅读 · 0 评论 -
【C++标准库】11.3 辅助函数
本章剩余部分将对所有STL 算法逐一详细讨论。每个算法至少配备一个运用实例。为了简化这些例子,使你集中精力于真正重要的问题上,我用了一些辅助函数:/* The following code example is taken from the book * "The C++ Standard Library - A Tutorial and Reference, 2nd Edition" * by Nicolai M. Josuttis, Addison-Wesley, 2012 * * (C)原创 2022-04-28 23:10:53 · 490 阅读 · 0 评论 -
C++在linux终端上设置颜色
#define NONE "\033[m"#define RED "\033[0;32;31m"#define LIGHT_RED "\033[1;31m"#define GREEN "\033[0;32;32m"#define LIGHT_GREEN "\033[1;32m"#define BLUE "\033[0;32;34m"#define LIGHT_BLUE "\033[1;34m"#define DARY_GRAY "\033[1;30m"#define CYAN "\033[0原创 2022-04-26 12:58:14 · 1134 阅读 · 0 评论 -
C++标准模版库英文关键字学习
Index 单词 音标 含义 1 auxiliary 英 [ɔːɡˈzɪliəri] 美 [ɔːɡˈzɪliəri] adj.辅助的;备用的n.助动词;辅助工;辅助人员 ...原创 2022-04-26 08:07:47 · 464 阅读 · 0 评论 -
C++仿函数
1.STL中提供的仿函数2.仿函数一些简单用法示例原创 2022-04-25 10:06:12 · 4650 阅读 · 1 评论 -
【C++】C++ Primer-第五版-10.6 特定容器算法
一个读书笔记-带有示例1.引言 与其他容器不同,链表类型list和 forward_list定义了几个成员函数形式的算法,如表10.6所示。特别是,它们定义了独有的sort、merge、remove、reverse和unique。通用版本的sort要求随机访问迭代器,因此不能用于list和 forward_list,因为这两个类型分别提供双向迭代器和前向迭代器。 链表类型定义的其他算法的通用版本可以用于链表,但代价太高。这些算法需要交换输入序列中的元素。一个链表可以通过改变...原创 2022-04-23 11:25:41 · 163 阅读 · 0 评论 -
C++的异常处理
1.看看第一个和第二个代码分别会怎样?2.记住异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到.原创 2022-04-17 19:32:02 · 698 阅读 · 0 评论 -
【C++】查看各种容器使用的迭代器是什么类型的
#include <iostream>#include <cstdlib>#include <string>#include <vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include <unordered_map>#include <u.原创 2022-04-17 10:46:04 · 780 阅读 · 0 评论 -
【C++】C++ Primer-第五版-10.5 泛型算法结构
任何算法的最基本的特性是它要求其迭代器提供哪些操作. 某些算法,如 find,只要求通过迭代器访问元素、递增迭代器以及比较两个迭代器是否相等这些能力. 具他一些算法,如 sort,还要求读、写和随机访问元素的能力。算法所要求的迭代器操作可以分为5个迭代器类别(iterator category),如表10.5所示. 每个算法都会对它的每个迭代器参数指明须提供哪类迭代器. 表10.5 迭代器类别 输入迭代器...原创 2022-04-16 19:45:42 · 525 阅读 · 0 评论 -
【C++】头文件查询 Library Names and Headers
Index Name Header 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19原创 2022-04-15 23:17:54 · 558 阅读 · 0 评论 -
【内存】VALGRIND
REDHAT-VALGRIND原创 2021-04-26 23:33:09 · 183 阅读 · 0 评论 -
【内存】进程结束后程序员没有释放的内存哪儿去了?
进程结束后,泄露的堆内存被系统操作系统回收了原创 2021-11-20 00:58:28 · 7092 阅读 · 0 评论 -
【内存】智能指针的设计思路
1.RAII在传统的C++中需要程序员记得用delete对自己申请的内存进行释放,C++11引入智能指针的概念,使用引用计数的方法,让程序员不需要关心手动释放内存。C++11中解决这个问题的灵感来源于RAII。RAII-Resource Acquisition Is Initialization(资源获取就是初始化),利用的就是C++构造的对象最终会被销毁的原则。RAII的做法是使用一个对象,在其构造时获取对应的资源,在对象生命期内控制对资源的访问,使之始终保持有效,最后在对象析构的时候,释放构造时获取原创 2021-11-20 22:40:32 · 1432 阅读 · 0 评论 -
【内存】weak_ptr
weak_ptr的一个重要用途是获得this指针的 shared_ptr,使对象自己能够生产shared_ptr管理自己:对象使用weak_ptr观测this指针,这并不影响引用计数,在需要的时候就调用lock ()函数,返回一个符合要求的shared_ptr供外界使用:这个解决方案被实现为一个惯用法,在头文件<boost/enable_shared_from_this.hpp>定义了一个助手类enable_shared_from_this<T>,它的声明摘要如下:temp原创 2021-12-18 21:38:15 · 333 阅读 · 0 评论 -
【内存】【Memory As a Programming Concept in C and C++】翻译-Chapter5
System stack,activation frame,activation frame as the storage for localauto objects and for function arguments. Passing arguments by valueas opposed to by reference. Calling sequence. Recursion and its relationto activation frames and the system stack.原创 2022-03-11 12:31:32 · 646 阅读 · 0 评论 -
【内存】浅拷贝与深拷贝
1.浅拷贝-shallow copy#include <string.h>#include <unistd.h>#include <stdio.h>#include <iostream>using namespace std;class MyString{ public: MyString(const char *str = "") { if(str == NULL)原创 2021-11-28 17:58:34 · 368 阅读 · 0 评论 -
【内存】内存泄露测试导致OOM-KILLER
一个线上的OOM-KILLER记录Slab占用内存过大导致程序被kill的场景暴力测试:#include <iostream>using namespace std;void fun(){ int *p = new int(1000000);}int main(){ while(1) { fun(); }}原创 2021-11-29 22:39:03 · 457 阅读 · 0 评论 -
【内存】false sharing
false sharing原创 2022-02-13 16:31:15 · 229 阅读 · 0 评论 -
【内存】scoped_ptr
1.初识scoped_ptrscoped_ptr是一个与auto_ptr/unique_ptr很类似的智能指针,它包装了new操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确地删除。但scoped_ptr的所有权更加严格,不能转让,一旦scoped_ptr获取了对象的管理权,我们就无法再从它那里收回来。scoped_ptr拥有一个很好的名字,它向代码的阅读者传递了明确的信息:这个智能指针只能在本作用域里使用,不希望被转让。2....原创 2021-12-11 23:43:03 · 2166 阅读 · 0 评论 -
【内存】scoped_array
1.初识scoped_arrayscoped_array很像scoped ptr,它包装了new[]操作符(不是单纯的new)在堆上分配的动态数组,为动态数组提供了一个代理,保证可以正确地释放内存。scoped_array相当于C++11标准中管理数组对象用法的unique_ptr.2.类摘要...原创 2021-12-13 01:00:28 · 1816 阅读 · 0 评论 -
【内存】auto_ptr
1.VC版本-归属权转移不彻底#include <iostream>#include <string>using namespace std;template<class T>class auto_ptr{ public: auto_ptr(T *p = 0):m_bOwner(p != 0),m_pPtr(p) {} auto_ptr(const auto_ptr<T> &obj=原创 2021-12-02 12:18:15 · 696 阅读 · 0 评论 -
【内存】实现一个简单的智能指针
1.智能指针的基本素养1.智能;2.是指针,支持用*取内容, 支持用->来访问智能指针对象的成员.原创 2021-11-20 23:59:32 · 1304 阅读 · 0 评论 -
【C/C++】复习关键字static
1.面向过程中的static1.1 优势 可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。1.2static局部变量静态局部变量属于静态存储方式,它具有以下特点:(1)静态局部变量 在函数内定义它的生存期为 整个程序生命周期,但是其作用域仍与自动变量相同 ,只能在定义该变量的函.原创 2021-04-02 18:09:20 · 392 阅读 · 0 评论