![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 78
耶耶耶耶耶~
这个作者很懒,什么都没留下…
展开
-
C++11 标准库头文件模拟实现,无锁STL
暂不考虑支持多线程常用STL的简单实现,主要内容百行左右完成,意在理解STL的原理。原创 2024-06-23 18:57:41 · 353 阅读 · 0 评论 -
boost.asio使用简介
The Boost.Asio库是为使用C++进行系统编程的程序员设计的,在系统编程中,通常需要访问操作系统功能(如网络)。特别是Boost。便携性。该库应支持一系列常用的操作系统,并在这些操作系统之间提供一致的行为。可扩展性。该库应促进可扩展到数千个并发连接的网络应用程序的开发。每个操作系统的库实现都应该使用最能实现这种可伸缩性的机制。效率该库应支持分散采集I/O等技术,并允许程序最大限度地减少数据复制。从已建立的API(如BSD套接字)中建模概念。原创 2024-03-09 21:53:10 · 1298 阅读 · 0 评论 -
c++并发编程/多线程 thread 库
/ 即使函数的形参是引用类型也会发生拷贝构造,除非:// 这样value对象就是主线程中的对象。原创 2023-11-20 22:02:03 · 177 阅读 · 0 评论 -
Valgrind——c/c++内存检测工具
Valgrind 是一个用于构建动态分析工具的检测框架。Valgrind包含了可以自动检测多种内存管理和线程错误的工具,并对程序进行详细的分析。而且,还可以使用Valgrind来构建新工具。原创 2023-10-21 09:28:43 · 217 阅读 · 0 评论 -
GNU-ncurses库简介
ncurses是一个管理应用程序在字符终端显示的函数库。它提供了移动光标,建立窗口,产生颜色,处理鼠标操作等功能。ncurses提供的是字符用户界面,而非图形用户界面。原创 2023-09-20 22:30:39 · 767 阅读 · 0 评论 -
c++新标准11~17等
{初始化列表},可用于所有的内置类型和用户定义的类型,可添加=也可不加。// = {3.4} 报错 double y = {2.35 };double w;1 , 3.45 };1 , 3.45 };如果有类将模板std::initializer_list作为参数的构造函数,则只有该构造函数可以使用列表初始化形式STL容器提供了将initializer_list作为参数的构造函数。原创 2023-07-02 15:28:18 · 186 阅读 · 0 评论 -
操作系统概述(二、入门,基础,计算机系统)
软件和硬件的桥梁操作系统的加载和初始化AbstractMachine代码导读__LabOS- 熟悉代码框架- 多处理器上的kalloc/free- 中断和异常驱动的上下文(线程)切换- 虚拟地址空间、用户态进程和系统调用- 虚拟文件系统。devfs, procfs, 简单的文件系统;ELF加载器如果一个人在未经训练的情况下就能把某件事情做的很好,证明他在某件事情上很有“天赋”,但是和接受过专业训练的人依然存在不小的差距。原创 2023-06-24 22:29:52 · 395 阅读 · 0 评论 -
c++输入输出文件操作stream
c++程序把输入和输出看作字节流。输入时,程序从输入流中抽取字节:输出时,程序将字节流插入到输出流中。一般输入和输出都有缓冲区。C++程序通常在用户按下回车键时刷新输入缓冲区。cin: 标准输入流cout: 标准输出流如果输出被重定向到文件,则标准错误流依然会被输出到屏幕cerr: 标准错误流,无缓冲区clog: 标准错误流,有缓冲区coutostream类将输出转化为字符字节流put() 显示字符write() 显示字符串将val内存中的数据作为字节字符输出到屏幕输出缓冲区。原创 2023-05-27 20:50:13 · 2631 阅读 · 0 评论 -
C/C++混用情况解决 编译问题
无。原创 2023-04-20 23:09:37 · 357 阅读 · 0 评论 -
MyString 类 构造函数 对象行为 设计模式 单例模式
记录不同行为的拷贝与构造情况。略。原创 2023-04-16 10:41:06 · 346 阅读 · 1 评论 -
A a(std::string (ch) );
不要写奇奇怪怪的语法就是了。原创 2023-04-10 20:19:29 · 59 阅读 · 0 评论 -
c++ plus复习(二)
对于静态类成员,可以在类声明之外使用单独的语句来进行初始化,这是因为静态类成员是单独存储的,而不是对象的组成部分。C++函数的作用域可以是整个类或整个命名空间(包括全局的),但不能是局部的(因为不能在代码块内定义函数,如果函数的作用域为局部,则只能对它自己是可见的,因此不能被其他函数调用。这样的函数将无法运行)。初始化是在方法文件中,而不是在类声明文件中进行的,因为类声明位于头文件中,程序可能将头文件包括在其他几个文件中。声明类指是描述了对象的形式,并没有创建对象,在创建对象前,将没有用于存储值的空间。原创 2023-04-02 19:18:11 · 365 阅读 · 0 评论 -
c++ plus复习(一)
C++数类型分为基本类型和复合类型。基本类型分为整形和浮点型,复合类型如数组、指针、结构体等。原创 2023-03-19 21:16:11 · 309 阅读 · 0 评论 -
C++内存管理
C++内存管理。原创 2022-12-08 21:53:20 · 227 阅读 · 0 评论 -
C++ static小结
总结static关键字的作用定义static变量意味只能在本.c/.cpp文件中使用该变量,而不能被其他.c/.cpp文件使用。定义的static变量存储在静态区,所以只初始化一次,其生命周期较长,从程序开始直至结束。定义static函数,意味只能在本.c/.cpp文件中使用该函数,而不能被其他.c/.cpp文件使用,可防止命名冲突。(定义的全局变量或函数默认是extern的。)原创 2022-12-01 23:20:18 · 487 阅读 · 0 评论 -
tinystl_list Debug
tinystl_list 的 iterator使用了模板继承,模板继承与普通的继承方式并不完全一样。原创 2022-11-29 22:15:43 · 56 阅读 · 0 评论 -
template partial specialization模板特例化,偏特化
其中尖括号中的T、U为模板参数,可以用class也可以用typename(书中推荐用ypename)如类模板:};当T为某种特定的类型时需要改变类的定义,处理此特殊情况需要特例化模板:template};模板特例化大致意思为:如果class template拥有一个以上的template参数,我们可以针对其中某个(或数个,但非全部)template参数进行特例化工作,换句话说,我们可以在泛化设计中提供一个特例化版本(也就是将泛化版本中的某些template参数赋予明确的指定)。原创 2022-11-05 16:38:53 · 216 阅读 · 0 评论 -
heap排序算法
堆数据结构可以有两种表示方法用指针表示用一维数组表示堆是完全二叉树,索引从0开始,满足下述条件若父节点索引为 i ,则它的左孩子节点索引为 2i+1 ,右孩子节点索引为 2i + 2若孩子节点(包括左右孩子)索引为 i ,则其父节点为 (i-1)/2 向下取整堆是完全二叉树,可以用指针或者数组表示。push_heap的前提是最后一个元素之前满足堆条件,push_heap将最有一个元素插入堆中,插入后整个数组又都满足堆条件。原创 2022-09-28 20:21:43 · 170 阅读 · 0 评论 -
static void(*set_malloc_handler(void(*f)() ) ) ()
写法较为复杂的函数原创 2022-08-15 15:45:56 · 212 阅读 · 0 评论 -
动态规划/背包问题总结/小结——01背包、完全背包
本文以01背包模型为切入点,结合动态规划的五个步骤,深入浅出的介绍了经典背包问题的解法,主要包括了01背包和完全背包。并对背包问题做了简要总结原创 2022-08-04 20:43:31 · 947 阅读 · 0 评论 -
socket通讯
端口复用IO多路复用端口复用最常用的用途是:防止服务器重启时之前绑定的端口还未释放程序突然退出而系统没有释放端口IO多路复用(IO多路转接)I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 I/O 多路复用的系统调用主要有 select、poll 和 epoll。主旨思想:poll...原创 2022-07-06 23:30:28 · 114 阅读 · 0 评论 -
常用排序算法c/c++
列举了常用排序算法,并给出代码对算法的核心思想进行了简明扼要地说明原创 2022-06-24 10:21:28 · 252 阅读 · 0 评论 -
Linux内存对齐
内存对齐,类的sizeof大小原创 2022-06-18 16:27:11 · 325 阅读 · 0 评论 -
chapter 7类
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言chapter 7 class二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下原创 2022-04-20 14:42:35 · 460 阅读 · 0 评论 -
19 C++ 特殊工具与技术
系列文章目录文章目录系列文章目录前言控制内存分配定位new表达式运行时类型时别dynamic_cast运算符typeid运算符使用RTTItype_info类枚举类型类成员指针数据成员指针成员函数指针将成员函数用作可调用对象嵌套类union:一种节省空间的类局部类固有的不可移植的特性位域volatile限定符链接指示:extern “C”总结前言该章节为扩展内容控制内存分配// new expressionstring *sp = new string("a value");调用op原创 2022-05-27 14:16:30 · 172 阅读 · 0 评论 -
17 C++ tuple、bitset、正则表达式、随机数、IO库
系列文章目录文章目录系列文章目录前言tuple类型\前言从1998年至2011年,标准库部分的篇幅增加了两倍以上。本片介绍4个较为通用的标准库设施:tuple、bitset、随机数生成、正则表达式。此外还会介绍一些附加的IO库功能:格式控制、未格式化IO、随机访问。标准库占据了标准文本近2/3的篇幅。提示:以下是本篇文章正文内容,下面案例可供参考tuple类型<tuple><tuple>可以将tuple看作一个’快速而随意’的数据结构定义和初始化tuplet原创 2022-05-20 22:32:00 · 163 阅读 · 0 评论 -
18 C++ 异常处理、命名空间、多重继承与虚继承
系列文章目录文章目录系列文章目录前言异常处理命名空间总结前言异常处理、命名空间、多重继承异常处理命名空间总结原创 2022-05-20 15:08:42 · 185 阅读 · 0 评论 -
16 C++ 模板与泛型编程
模板是C++中泛型编程的基础。一个模板就是一个创建类或函数的蓝图或公式。当使用一个vector这个样的泛型类型,或find这样的泛型函数时,我们提供足够的星系,将蓝图转换为特定的类或函数。这种转换发生在编译时。function template 模板参数列表template parameter list 模板参数template parameter 模板实参template argument非类型模板参数nontype parameterinline和constexpr类模板实原创 2022-05-17 14:41:37 · 524 阅读 · 0 评论 -
15 C++面向对象程序设计
系列文章目录 系列文章15文章目录系列文章目录前言OOP:概述定义基类和派生类类型转换与继承虚函数抽象基类访问控制与继承类继承中的类作用域构造函数与拷贝控制虚析构函数合成拷贝控制与继承派生类的拷贝控制成员继承的构造函数容器与继承Basket类文本查询程序again总结前言面向对象程序设计基于三个基本概念:数据抽象、继承和动态绑定。OOP:概述object-oriented programming 的核心思想是数据抽象、继承和动态绑定。继承 inheritance基类 base cla原创 2022-05-12 21:43:37 · 178 阅读 · 0 评论 -
14 C++ 重载运算与类型转换
文章目录前言基本概念输入和输出运算符算数和关系运算符相等运算符关系运算符赋值运算符下标运算符递增递减运算符成员访问运算符函数调用运算符lambda是函数对象总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考基本概念运算符函数//错误:不能为int重新定义内置的运算符int operator+(int, int);只能重载已原创 2022-05-09 22:28:30 · 472 阅读 · 0 评论 -
13 C++拷贝控制
文章目录前言拷贝、赋值与销毁拷贝构造函数拷贝赋值运算符总结前言本文将介绍类如何控制该类型对象拷贝、赋值、移动或销毁时做什么。类通过一些特殊的成员函数控制这些操作,包括:拷贝构造函数、移动构造函数、拷贝复制运算符、移动赋值运算符以及析构函数。拷贝控制操作:copy constructor, copy-assignment operator, move constructor, move-assignment operator, destructor拷贝、赋值与销毁拷贝构造函数calss Fo原创 2022-05-04 17:03:48 · 902 阅读 · 0 评论 -
C++ IO库
文章目录前言IO类IO对象无拷贝或赋值流的条件缓冲区操作文件输入输出string流小结前言passpassIO类iostreamistream, ostreamfstreamifstream, ofstreamsstreamistringstream, ostringstreamIO对象无拷贝或赋值流的条件strm::iostateiostate是一种机器相关的类型strm::badbit指出流已崩溃strm:原创 2022-04-21 16:57:19 · 711 阅读 · 0 评论 -
C++ 关联容器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、使用二、关联容器概述pair类型关联容器操作增总结前言关联容器map和set最简单的散列表:数组,arr[key] = value按关键字有序保存元素底层实现查询效率增删效率map关联数组:保存关键字-值对红黑数O(log n)O(log n)set关键字即值,即只保存关键字的容器红黑数O(log n)O(log n)multimap关键字可重复出现的map.原创 2022-04-27 12:11:26 · 1377 阅读 · 0 评论 -
c++ 动态内存
文章目录前言动态内存与智能指针shared_ptr类直接内存管理shared_ptr和new结合使用智能指针和异常总结前言 全局对象在程序启动时分配,在程序结束时销毁。局部自动对象:当进入其定义所在的程序块是被创建,在离开块时销毁。局部static对象在第一次使用前分配,在程序结束时销毁。 除自动和static对象外,C++还支持动态分配对象。动态分配对象的生存期与他们在哪里创建无关,只有当显式地被释放时,这些对象才会被销毁。 为了更安全的使用动态对象,标准库定义了两个智能指针类型来管理动态原创 2022-04-29 16:32:02 · 2093 阅读 · 0 评论 -
C++ 泛型算法
文章目录前言泛型算法只读写容器二、使用步骤1.引入库2.读入数据总结前言泛型算法与容器无关。操作迭代器。算法不会执行容器操作,算法本身并不改变容器大小,但是可以通过操纵insert, erase来改变容器。提示:以下是本篇文章正文内容,下面案例可供参考泛型算法只读accumulate(c.begin(), c.end(), 初始加和数)equal(c.cbegin(), c.edn(), c2.cbegin())写容器fill(c.begin(), c原创 2022-04-25 23:51:44 · 917 阅读 · 0 评论 -
primer c++ 5 chapter2变量和类型,3字符串向量数组
c++原创 2022-03-30 12:53:15 · 764 阅读 · 0 评论 -
primer c++ 5 chapter4表达式,5语句,6函数
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言四,表达式逻辑和关系运算符赋值运算前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考四,表达式一元运算符,二元运算符,三元运算符运算符的求值顺序没有明确规定,给编译器优化留下了余地表达式要不是左值rvalue要不是右值lrvalue逻辑与(&.原创 2022-04-05 12:59:14 · 761 阅读 · 0 评论 -
C++运算符优先级
目录前言基本概念运算符优先级总结前言 本文首先明确了一些基本概念,包括求值顺序、优先级、结合律、左值、右值。然后列出了运算符优先级的详细表单,并在表单中总结了运算符的运算结果。表单总结的尽量详细,方便日后查阅使用。基本概念在了解运算符优先级之前必须明确一些基本概念求值顺序、优先级和结合律 求值顺序、优先级和结合律是三个不同的概念。先考虑运算符的优先级,在考虑结合律,而求值顺序与优先级和结合律无关,并且大多数运算符没有规定求值顺序。例如:a() + b(...原创 2022-05-07 21:14:48 · 183 阅读 · 0 评论 -
c++ 顺序容器
文章目录前言一、概览迭代器容器定义和初始化赋值和swap总结前言顺序容器:初始化vector可变数组大小。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢默认构造函数创建一个空容器deque双向队列。支持快速随机访问。在头尾位置插入/删除速度很快默认构造函数创建一个空容器list双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度很快默认构造函数创建一个空容器forward_list单向链表。只支持单项顺序访问。在链表原创 2022-04-23 18:34:26 · 639 阅读 · 0 评论