
这个函数,只有遇到换行时,才会停止;
定义:

示例:
空格问题

输入界限问题;


范围for就是刻板的拷贝
将for(auto e:s1)替换位的for(e=s1.begin;e
这里的string类内函数不需要使用头文件;
正常情况下std命名空间内的容器都需要使用头文件;但是这里的string是特例不需要使用头文件就可以使用;

堆向上生长;
栈向下生长;
对于栈来讲,生长方向是向下的,也就是向着内存地址减小的方向;对于堆来讲,它的生长方向是向上的,是向着内存地址增加的方向增长
堆是使用malloc()、calloc()、realloc()等函数动态分配的,而使用alloca()函数可以动态分配栈的内存空间,释放的时候由编译器自己释放。
new是关键字,需要编译器支持;malloc是库函数,需要头文件支持。



这里解决的是一个文件中已经有头文件;而第三个文件同时包含了这两个文件的问题;

先将capacity变到想要括的大小;再使用new来将物理上的内存扩到这个大小;再将原来的内容拷贝过去;

这里可以将其写成一个reserve函数如果没有就写4;有就扩容二倍;

即匿名对象不能修改;
匿名对象赋值普通对象,将会将和并拷贝构造和构造变为构造;
匿名对象赋值引用对象;引用对象需要使用const类型:原因:匿名对象就有常性;
但是两者的时间和作用域都会改变;
c++将其进行了升级;使内置类型和自定义类型都有了构造函数
内置类型的构造函数和自定义类型相同都是使用的类型加括号的方法:
int +名字+()——》这里的()里加参数;

vector的insert插入时使用头插不需要强制类型转换原因: 这里使用的是地址;地址不会为0;

new函数在不同的编译器失败的操作不同:
相对老的编译返回空指针;
较新的编译器会抛异常;
使用try catch语句;


直接放在类中是私有的不能使用;需要放在共有的中;
int类型的默认初始化是将其赋值为0;
string类型默认初始化是将其赋值为空;
解决方法:
记录长度;将新start+长度记新的迭代器




这里的添加typename是为了是为了让编译器在第一次检查每个函数时,勉强通过;再在示例化(函数被调用),再进行编译;


当使用该定义来定义变量时:使用的是名字+<容器内部的数据类型>
如:vector
pwd显示目录;
ls—(查找)可以查找当前文件也可以查找其他文件;(这里不会改变当前所在位置;
ls-l显示当前的详细文件内容——简写——》ll;这里的l是lot
mkdir—创建一个文件夹
cd—是双击的意思;这里配套相对路径或绝对路径
touch—创建文件;
ls-a显示隐藏的文件;(Linux中将隐藏文件的名字设置以.开头;
一个文件内都包含两个隐藏文件:一个是”.“的文件;另一个”…“的文件
**“.”是当前文件的按键;“…"是上一个文件建的按键;
cd.————————实现的是还在当前目录;
cd…————————实现的是返回到上一目录;
使用:
”.“在当前文件夹中实现一个程序的运行时;使用如下:
./文件名
相对路径:
./当前文件文档
…/上一文件夹中的另一个文件夹/该文件的文件或文档;
…/bin/a.txt
指令是在linux系统下用c语言写可执行程序;而这些程序都包含在
/usr/bin目录下
** cd-————————返回上一个浏览的目录
which————查找该文件名字的地址;使用:which +” "+文件名;
alias———重命名文件名; 使用:alias+“新名字”+“=”+“ ‘原名字 ’ “
Linux中查找文件使用路径来进行查找;
路径:
根目录:
路径分割符号:

该路径是多叉树结构;

Linux用户: root和其他用户;
家目录:这里和根目录不同,是/+家目录(如root)
** touch创建普通文件;如:test.c |test.file|test.txt
** stat查看文档的详细性质;如时间 ,大小,地址;
** 属性内的时间**:

access时间这个时间是创立时间;
modify时间这个时间是内容的最近更改时间
charge时间这个时间是性质更改时间;
touch 的使用该文件的时间将被更改;
** -p直接创建多个文件(文件夹套文件夹)

** tree 使用树状结构来排列该文件夹的文件;

** rmdir** 删除空目录
** rm** 删除文档 (这个会弹出是否删除)

** rm-f** 强制删除;
** rm-r** 递归删除整个文建的内容;
** rm-fm强制删除整个文件的内容;

这个就linux的文件将全部删除;
8.man指令(字典):
./*删除当前目录下的所有文件;
** cp拷贝

cp-r将整个目录拷贝

** cp-r-f强制整个拷贝
将整个目录的拷贝到t中;
** cat**查看普通文件的内容(。c文件)
** mv**

和函数的默认实参相同;
template <typename T = int> class A;
allocator内存池container内存适配器

c++添加的构造函数:
initializer list构造函数


所以函数指针相较于反函数差;
方法一:显示调用:使用<>将要传送的传过去;
方法二:自动推导


类可以定义和声明分离;这里类的声明必须在类内存在;
原因:.h文件和.cpp文件进行运行函数没有实例化;还是模板(参数没有示例化)函数没有被分配内存;
这就导致函数调用时找不到函数地址;
解决:在cpp文件中进行实例化
在.h实现函数定义;(声明和定义放在一起
template+ 返回值+函数名+<类型>+(参数)template+即函数定义
函数模板的实例化

类模板的实例化

继承以后;保护就有了意义
右值:是不可以取地址和别名的值;如变量名、解引用以后的指针;这里只可以使用const变量来进行取别名和指针;
左值:是可以取地址和别名的值;如字面常量、表达式返回值、函数返回值等
示例:

这里的end()返回的变量是临时对象;具有常性;所以在rbegin()中不可以将其进行–;
const的指针的引用


区别于*和->的重定义;和迭代器begin() end() rebegin() reend()这几个函数的定义;
旧版:

新版

cin 没有endl;使用>>;
cout 使用endl;使用<<;
