C++相关
black f
落子无悔,不忘初心,日日精进,圣贤可达。
展开
-
二维数组操作指南
今天突然遇到一个很恶心的问题,如果我想把二位数组作为函数参数传递到函数参数中,应该怎么办?好吧,用下面的代码就行// 利用数组是顺序存储的特性, 通过降维来访问原数组! void print_c(int *a, int n, int m) { int i, j; for(i = 0; i < n; i++) { for(j = 0;原创 2021-05-28 15:09:41 · 57 阅读 · 0 评论 -
重构笔记
https://blog.csdn.net/pistolove/article/details/42679983转载 2021-05-11 22:42:45 · 54 阅读 · 0 评论 -
C++的多线程
https://blog.csdn.net/ouyangfushu/article/details/80199140原创 2021-05-08 15:17:53 · 71 阅读 · 0 评论 -
C++11花括号初始化
C++11之前主要有以下几种初始化方式://小括号初始化string str("hello"); //等号初始化string str="hello"; //POD对象与POD数组列表初始化struct Studnet{ char* name; int age;};Studnet s={"dablelv",18}; //纯数据(Plain of Data,POD)类型对象Studnet sArr[]={{"dablelv",18},{"tommy",19}}; //P转载 2021-05-08 09:35:40 · 3383 阅读 · 0 评论 -
const和11中的constexpr
我们知道,constexpr 是 C++ 11 标准新添加的关键字,在此之前(C++ 98/03标准)只有 const 关键字,其在实际使用中经常会表现出两种不同的语义。举个例子:#include <iostream>#include <array>using namespace std;void dis_1(const int x){ //错误,x是只读的变量 array <int,x> myarr{1,2,3,4,5}; cout &l原创 2021-05-07 17:21:25 · 56 阅读 · 0 评论 -
C++11新特性全部讲解
突然发现了一个好网站!http://c.biancheng.net/view/7918.html原创 2021-05-07 17:18:09 · 91 阅读 · 0 评论 -
C++11之内联的命名空间
C++11标准中,可以在父命名空间中定义内联的子命名空间,内联的子命名空间可以把其包含的名字导入到父命名空间中,从而在父命名空间中可以直接访问子命名空间中定义的名字,而不用通过域限定符Child::name的形式来访问。例如下面的代码:namespace Parent{ namespace Child1 { struct child1_data{int a;} ; } namespace Child2 { struct chil转载 2021-05-07 15:06:29 · 181 阅读 · 0 评论 -
C++中的lambda与函数对象
lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使代码更可读。但是从本质上来讲,lambda表达式只是一种语法糖,因为所有其能完成的工作都可以用其它稍微复杂的代码来实现。但是它简便的语法却给C++带来了深远的影响。如果从广义上说,lambda表达式产生的是函数对象。函数对象的本质上是一个类而不是一个函数,在类中,对象重载了函数调用运算符(),从而使对象能够项函数一样被调用,我们称这些对象为函数对象(Function Obje原创 2021-05-07 11:45:17 · 339 阅读 · 0 评论 -
原码,补码和位运算
昨天参加模拟考试,看到这种题目SB了。这里记录一下。首先,计算中存的数字都是以补码的形式存。正数和0的补码就是二进制表示本身。负数的补码为对应正数按位取反加1。比如:10 的 原码,补码均为:00000000 00000000 00000000 00001010-10的补码为10按位取反 + 100000000 00000000 00000000 00001010按位取反11111111 11111111 11111111 11110101再 +111111111 11111111 1原创 2021-04-19 14:52:42 · 109 阅读 · 0 评论 -
宏定义
概念宏定义是在编译之前预处理完成的。编译一个C语言程序的第一步骤就是预处理阶段,这一阶段就是宏发挥作用的阶段。C预处理器在源代码编译之前对其进行一些文本性质的操作,主要任务包括删除注释、插入被#include进来的文件内容、定义和替换由#define 定义的符号以及确定代码部分内容是否根据条件编译(#if )来进行编译。”文本性质”的操作,就是指一段文本替换成另外一段文本,而不考虑其中任何的语义内容。宏常量我们最常使用到的#define的用法就是用#define来定义一个符号常量,而要修改时,只需修改转载 2021-04-12 19:45:04 · 538 阅读 · 0 评论 -
命名空间
类似于java中的包定义自己的命名空间#include <iostream>using namespace std; // 第一个命名空间namespace first_space{ void func(){ cout << "Inside first_space" << endl; }}// 第二个命名空间namespace second_space{ void func(){ cout << "I原创 2021-04-12 19:04:02 · 57 阅读 · 0 评论