C++
文章平均质量分 65
神奇的小强
中华技术研究所1024实验室神风作战组
展开
-
现代C++新特性 强枚举类型(PC浏览效果更佳)
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载 C++之父本贾尼·斯特劳斯特卢普曾经在他的The Design And Evolution Of C++一书中写道“C enumerations constitute a curiously half-baked concept.”。翻译过来就是“C语言的枚举类型构成了一个奇怪且半生不熟的概念”,可见这位C++之父对于enum 类型的现状是不满意的,主要原因是enum类型破坏了C++的类型安全。大多数情况下,我们说C++是一门原创 2022-06-20 22:37:19 · 457 阅读 · 0 评论 -
现代C++新特性 继承构造函数
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载 1.继承关系中构造函数的困局相信读者在编程经历中一定遇到过下面的问题,假设现在有一个类Base提供了很多不同的构造函数。某一天,你发现Base无法满足未来业务需求,需要把Base作为基类派生出一个新类Derived并且对某些函数进行改造以满足未来新的业务需求,比如下面的代码:基类Base的SomeFunc无法满足当前的业务需求,于是在其派生类Derived中重写了这个函数,但令人头痛的是,面对Base中大量的构造函数,我原创 2022-06-03 22:34:22 · 188 阅读 · 0 评论 -
现代C++新特性 委托构造函数
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载1.冗余的构造函一个类有多个不同的构造函数在C++中是很常见的,例如:class X {public: X() : a_(0), b_(0.) { CommonInit(); } X(int a) : a_(a), b_(0.) { CommonInit(); } X(double b) : a_(0), ...原创 2022-04-17 22:11:15 · 1006 阅读 · 0 评论 -
现代C++新特性 非受限联合类型
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载1.联合类型在C++中的局限在编程的问题中,用尽量少的内存做尽可能多的事情一直都是一个重要的课题。C++中的联合类型(union)可以说是节约内存的一个典型代表。因为在联合类型中多个对象可以共享一片内存,相应的这片内存也只能由一个对象使用,例如:#include <iostream> union U { int x1; float x2;};int main(int...原创 2022-04-15 21:18:31 · 617 阅读 · 0 评论 -
现代C++新特性 默认和删除函数
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载1.类的特殊成员函数在定义一个类的时候,我们可能会省略类的构造函数,因为C++标准规定,在没有自定义构造函数的情况下,编译器会为类添加默认的构造函数。像这样有特殊待遇的成员函数一共有6个(C++11以前是4 个),具体如下。1.默认构造函数。2.析构函数。3.复制构造函数。4.复制赋值运算符函数。5.移动构造函数(C++11新增)。6.移动赋值运算符函数(C++11新...原创 2022-04-01 21:31:58 · 1725 阅读 · 0 评论 -
现代C++新特性 列表初始化
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载1.回顾变量初始化在介绍列表初始化之前,让我们先回顾一下初始化变量的传统方法。其中常见的是使用括号和等号在变量声明时对其初始化,例如:struct C { C(int a) {}};int main(int argc, char** argv){ int x = 5; int x1(8); C x2 = 4; C x3(4); retu...原创 2022-03-31 22:59:14 · 1585 阅读 · 0 评论 -
现代C++新特性 非静态数据成员默认初始化
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载1.使用默认初始化在C++11以前,对非静态数据成员初始化需要用到初始化列表,当类的数据成员和构造函数较多时,编写构造函数会是一个令人头痛的问题:class X {public: X() : a_(0), b_(0.), c_("hello world") {} X(int a) : a_(a), b_(0.), c_("hello world") {} X(double ...原创 2022-03-31 00:13:53 · 1345 阅读 · 1 评论 -
现代C++新特性 lambda表达式
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载1.lambda表达式语法lambda表达式是现代编程语言的一个基础特性,比如LISP、Python、C#等具备该特性。但是遗憾的是,直到C++11标准之前,C++都没有在语言特性层面上支持lambda表达式。程序员曾尝试使用库来实现lambda表达式的功能,比如Boost.Bind或Boost.Lambda,但是它们有着共同的缺点,实现代码非常复杂,使用的时候也需要十分小心,一旦有错误发生,就可能会出现一...原创 2022-03-29 23:37:56 · 963 阅读 · 0 评论 -
现代C++新特性 左值引用与右值引用
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载左值和右值左值和右值的概念早在C++98的时候就已经出现了,从 简单的字面理解,无非是表达式等号左边的值为左值,而表达式右边的值为右值,比如:int x = 1;int y = 3;int z = x + y;以上面的代码为例,x是左值,1是右值;y是左值,3是右值;z 是左值,x+y的结果是右值。用表达式等号左右的标准区分左值和右值虽然在一些场景下确实能得到正确结果,但是还是过于简单...原创 2022-03-28 23:02:23 · 948 阅读 · 1 评论 -
现代C++新特性 函数返回类型后置
文字版PDF文档链接:现代C++新特性(文字版)-C++文档类资源-CSDN下载使用函数返回类型后置声明函数前面已经出现了函数返回类型后置的例子,接下来我们将详细讨论C++11标准中的新语法特性:auto foo()->int{ return 42;}以上代码中的函数声明等同于int foo(),只不过采用了函数返回类型后置的方法,其中auto是一个占位符,函数名后->紧跟的int 才是真正的返回类型。当然,在这个例子中传统的函数声明方式更加简洁。而...原创 2022-03-25 20:56:06 · 2434 阅读 · 3 评论 -
现代C++新特性 新基础类型(long long)
现代C++新特性原创 2022-03-21 00:28:44 · 4141 阅读 · 0 评论 -
C/C++实现atoll函数
每天进步一点点long long int WeAtoll(const char* str_ptr){ int size = strlen(str_ptr); while ((*str_ptr == ' ' || *str_ptr == '-' || *str_ptr == '+')) { str_ptr++; size--; } const char* str_ptr_cpy = str_ptr; long long.原创 2022-02-27 00:27:37 · 640 阅读 · 0 评论 -
C++手撕strcpy、strncpy、strcat、strncat、memcpy、memset、memmove函数
CommonFunction.h#include <cstdio>#include <cassert>#include <cstring>#include <iostream>#include <string>char* WeStrcpy(char* dest_buf, const char* src_buf);char* WeStrncpy(char* dest_buf, const char* src_buf, i...原创 2022-02-23 00:47:54 · 414 阅读 · 0 评论 -
VScode前进和后退按钮,非快捷键
在网上找了半天,不喜欢用快捷键,喜欢鼠标点击,费了好长时间发现这个插件“Back&Forth”,安装后可以在右上角出现前进和后退按钮,如下图。原创 2022-01-18 22:05:34 · 8225 阅读 · 0 评论 -
STL容器和算法
#pragmaonce#include<iostream>#include<string>#include<vector>#include<queue>#include<stack>#include<list>#include<set>#include<unordered_set>#include<map>#include<unord...原创 2022-01-04 22:02:26 · 268 阅读 · 1 评论 -
Visual Assit X 最新版
链接:https://pan.baidu.com/s/13ab7JlAKygYUCFqeLRtdpw提取码:1001原创 2021-12-24 21:14:05 · 289 阅读 · 1 评论 -
C++二分常用算法和排列算法
#include <iostream>#include <string>#include <vector>#include <unordered_map>#include <unordered_set>#include <algorithm>using namespace std;/** binary_search:查找某个元素是否出现。* lower_bound:查找第一个大于或等于某个元素的位置。* upper_原创 2021-08-02 22:03:51 · 169 阅读 · 3 评论 -
华为OD机试题整理,已经写了参考代码
华为OD机试题整理,已经写了参考代码。链接如下:华为OD机试题整理链接原创 2021-04-19 13:52:30 · 8411 阅读 · 4 评论 -
C++正则表达式(匹配、搜索、替换)
C++正则表达式(匹配、搜索、替换)原创 2021-02-21 21:04:20 · 5445 阅读 · 2 评论