C/C++从执着到心累
文章平均质量分 55
熊彬彬
..
展开
-
Libuv编程指南
官网:http://libuv.org/GitHub:https://github.com/libuv/libuv中文文档:http://luohaha.github.io/Chinese-uvbook/一、简介libuv是一个支持多平台的异步IO库,它主要是为了node.js而开发的,但是也可以用于Luvit, Julia, pyuv及其他软件。libuv强制使用异步的,事件驱动的编程风格。它的核心工作是提供一个event-loop,还有基于I/O和其它事件通知的回调函数。li..原创 2021-05-20 18:51:37 · 673 阅读 · 0 评论 -
C++中常用的std标准容器
顺序容器:vector string (它不是类模板) list forward_list deque queue priority_queue stack有序关联容器:map multimap set multiset无序关联容器: unordered_map unordered_multimap unordered_set unordered_multiset一、顺序容器1. vector容器a. vector的定义与初始化..转载 2020-08-22 10:47:58 · 487 阅读 · 0 评论 -
c++共用体
共用体,用关键字union来定义,它是一种特殊的类。在一个共用体里可以定义多种不同的数据类型,这些数据共享一段内存,在不同的时间里保持不同的数据类型和长度的变量,以达到节省空间的目的。但是同一时间只能存储其中一个成员变量的值。 可以使用共用体判断系统是大端还是小端。#include <iostream>using namespace std;union Test { short a; char b[sizeof(a)];};int main(){ T...原创 2020-08-16 21:47:27 · 380 阅读 · 0 评论 -
C++11新特性梳理
在面试中,经常被问的一个问题就是:你了解C++11哪些新特性?一般而言,回答以下四个方面就够了:“语法糖”:nullptr, auto自动类型推导,范围for循环,初始化列表, lambda表达式等 右值引用和移动语义 智能指针 C++11多线程编程:thread库及其相配套的同步原语mutex, lock_guard, condition_variable, 以及异步std::furture1、语法糖这部分内容一般是一句话带过的,但是有时候也需要说一些,比较重重要的就是auto和lambd转载 2020-08-16 15:43:24 · 173 阅读 · 0 评论 -
C++ 中的运算符重载
重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。Box operator+(const Box&);声明加法运算符用于把两个 Box 对象相加,返回最终的 Box 对象。大多数的重载运算符可被定义为普通的非成员函数或者被定义为类成员函数。如果我们定义上面的函数为类的非成员函数,那么我们需要为每次操作传递两个参数,如下所示:Box operator+(const Box&转载 2020-08-06 22:44:25 · 306 阅读 · 0 评论 -
C++智能指针简析
1.智能指针智能指针是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指针。智能指针的类都是栈上的对象,所以当函数(或程序)结束时会自动被释放,原创 2020-08-08 22:52:32 · 204 阅读 · 0 评论 -
c++常用排序算法
#include <iostream>using namespace std;void quick_sort(int* arr, int begin, int end){ int i = begin; int j = end; int tmp = arr[i]; if (arr == NULL || begin >= end) { return; } while (i < j) { .原创 2020-08-02 17:06:18 · 220 阅读 · 0 评论 -
C++ 虚函数和纯虚函数的区别
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:class A{public: virtual void foo() { cout<<"A::foo() is called"<&l转载 2020-07-26 18:28:34 · 239 阅读 · 0 评论 -
C++中的explicit关键字介绍
C++中的关键字explicit主要是用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。类构造函数默认情况下声明为隐式的即implicit。隐式转换即是可以由单个实参来调用的构造函数定义了一个从形参类型到该类类型的隐式转换。编译器在试图编译某一条语句时,如果某一函数的参数类型不匹配,编译器就会尝试进行隐式转换,如果隐式转换后能正确编译,编译器就会继续执行编译过程,否则报错。explicit关键字只能用于类内部的构造函数声明上,而...原创 2020-07-19 13:03:58 · 446 阅读 · 0 评论 -
华为C语言编程规范
1 排版1-1:程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。1-2:相对独立的程序块之间、变量说明之后必须加空行。如下例子不符合规范:if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni...转载 2018-08-12 13:26:07 · 559 阅读 · 0 评论 -
C++学习笔记
virtual void fun() const =0;解释:const 和 =0 没有关系,要分开理解成员函数后面用 const 修饰,通俗的理解就是在这个函数内不能修改类的成员变量,除非那个成员变量是 mutable 的;=0表示这个成员函数是纯虚函数,也就是它可以没有定义,只有接口,由它的继承类具体定义它的行为;一个类里如果包含 =0 的纯虚函数,那么这个类就是一个抽象类,它不能具体实例...原创 2017-09-08 15:16:06 · 240 阅读 · 0 评论 -
结构体的用法
一、定义结构体变量:(1)先声明结构体类型,在定义结构体变量。 struct 结构体名 { 成员列表; }; struct 结构体名 结构体变量列表;(2)在声明结构体类型的同时定义结构体变量。 struct 结构体名 {原创 2015-06-13 23:03:23 · 1005 阅读 · 0 评论