c++培训周总结2

培训部分


数组名有两个含义
1  代表数组首地址
2 代表数组变量


当对数组名取地址的时候 ,为第二种用法,此时整个数组看做是一个整体,取珍整个数组的首地址,形式上看做把一个一维数组变成了一个二维数组


数组在内存中是连续存放的
通过测试发现连续声明两个数组的位置也是连续的


静态变量会自动初始化为0


用变量指定数组的个数的数组叫变长数组,在C99标准中财能用


多维数组可以第一维不声明而其他维必须声明


引用是c++的内容


如果没有指定return,系统默认返回return 0
exit标准函数可以立即结束整个程序,需包含stdlib.h


形参为void,表示没有任何形参,也可以表示接受任何形参


数组作为形参可以省略形参的个数,由于是传入的指针,所以需要额外提供一个参数用来传递数组的个数


fopen,fclolse,fread,fwrite


fread和fwrite在操作时会移动文件指针到指定的位置,所以可以用while循环来操作,如果到了文件末尾会返回0


由于文件的指针位置会被移动,所以需要fclose或者fseek来重置文件指针


代码段,全局段,栈,堆


代码段包括所有代码和极少数全局变量


全局段包括各种静态变量


栈是每个函数内部的空间,用完后就释放.
栈区是对栈底进行操作
后声明的元素在下面,下面的地址比上面的地址下
也就是说系统在最新开辟空间的时候是以一个大地址开辟,然后每个变量地址逐个减小


不同类型数据在栈空间内不是连续排列
同类型数据连续排列
另外要考虑4k对齐


堆区基本都是new出来的对象,生命周期由程序员自己定


迭代和递推
递推是用循环的思路解决迭代


'\0'的ascll码为0


指针为32位,所以记录指针可以用int存储然后强制转换


字符串字面量可以直接连接,"aaa""bbb",可以直接被连成"aaabbb"
字符串字面量在内存中只有一份,多余的不会被保存


str系和file系函数,省略
str要小心越界
file要小心文件指针的位置
SEEK_SET  1 文件开头
SEEK_CUR 2 当前文件指针位置
SEEK_END 3 文件末尾


在多文件中,static只在文件内有效
全局变量在定义的时候不会出现重定义,赋值之后才会出现重定义
多文件中有相同的名字的全局变量以先被赋值的为准
全局变量在其他文件中,加不加extern效果一样,但是必须得声明


自学部分


++i比i++多消耗一个临时变量,所以尽量使用++ii


谓词函数
int func(int(*a)(int,int) )
{
return a(10,5);
}
a是一个函数名
将函数的函数名传入, 当作一个指针来读取


explicit关键字  auto_ptr在构造函数中调用。
所以智能指针不能用赋值号来赋值
智能指针在传递的时候会移交控制权,如果传递给一个局部,控制权会交给局部,而局部释放时候对象就丢失了


template后的参数不一定非要全用到
template <class X,class T,class U>
inline const X max(const T& a,const U& b)
{
std::cout<<sizeof(U)<<std::endl;
return (X)(a>b)?a:b;
}
cout<<std1::max<float>('6',22)<<endl;


模板特化需要有一个通用模板才能找到特化版本


抛出异常直接在函数名后面加


void f() throw(){}


namespace::class::operator+(x,y);
重载的操作符可以直接这样使用


如果用异或来交换不能使用浮点类型,标准库还是使用了一个临时变量来交换


vector 尾部操作快速,中间叫做费时,可以使用下标直接访问,本质上就是array
deque 首部和尾部操作快速,中间操作费时
list 在任何位置添加和删除非常快速,一个双链表


set/multiset  使用平衡二叉树存储,任何一个元素的左子树的所有元素,永远小于右子树的所有元素


 map/multimap
可以使用make_pari(x,y)来存储
也可以coll[x]=y;


迭代器都有const版本  const_iterator


算法
头文件 algorithm

















评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值