C++ 标准库速成

#pragma once
//上下等价
#ifndef BitFlip_H
#define BitFlip_H
//the content of BitFlip_H header file
#endif // !BitFlip

1.切勿在头文件中使用using指令或者using 声明 否则添加你的头文件的每个人都要用这个空间。

2.命名空间嵌套在17标准中得到了极大的简化

3.声明变量的时候不指定值,变量的值取决于这块内存的值

4.17中允许if中加入初始化器

if (int a = 0;a>0) {

	}

5.

std::array<int, 3> arr = { 1,1,1 };//固定大小 #include<array> 11标准
	int size=std::size(arr);

6.C++程序中内存分为堆和栈,函数的执行一般在栈上进行,用完释放。明确的分配内存一般是放在了堆上。(在函数中声明的也要释放掉)

int* a;
	*a = 0;
	delete a;//delete[] a---删除数组
	a = nullptr; 删除指针后最好进行置空操作防止再次的使用

7.

//make_unique在超过作用域或者被删除时就会自动释放内存资源
	auto an=make_unique<BitFlip>();
	//共享指针,每次指定make_shared时都会递增一个引用计数,表示数据又多了一个拥有者,当超过作用域时,就递减引用计数,直到为0时,释放资源
	auto an1 = make_shared<BitFlip>();

8.const多种用法(如果需要给函数传递对象,最好按const引用传递他,这样可以防止多余的复制。如果需要改变对象,则需要传递非const引用)

//保护参数
void get(const string* a) {
	*a = "ddd";//不通过
}


const int a = 1;//保证代码不会改变该变量的值

//变量x和引用变量re指向同一个值,改变一个,则都会变
	int x = 1;
	int& re = x;

9.auto 去除了const限定和引用 因为auto创建一个副本 。除非用auto &

//第一个const函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针
//第二个 任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性
const int& Get() const {

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值