C++ Primer
东风中的蒟蒻
这个作者很懒,什么都没留下…
展开
-
12.动态内存
智能指针 shared_ptr,unique_tr,weak_ptr; make_shared函数 最安全的使用内存的方式就是使用make_shared标准库函数。和智能指针一样,包含在memory头文件中。 #include<iostream> #include<memory> #include<vector> using namespace std; int main() { shared_ptr<int>p = make_shared<int&g原创 2021-03-23 00:04:22 · 61 阅读 · 0 评论 -
10、泛型算法
这个应该在使用中学习,这里只会记录一些注意事项。 算法不会检查写操作的合法性 使用C++中的lambda表达式 谓词 谓词是一个可以调用的表达式,返回结果是一个能用于条件的值。标准库算法使用的谓词分为一元谓词(接受单一参数,fill)和二元谓词(拥有两个参数,sort) lambda表达式 lambda表达式可以看作未命名的内联函数。它具有以下形式 [capture list] (parameter list) -> return type { function body } lam原创 2021-03-23 00:02:59 · 72 阅读 · 0 评论 -
8.IO类
IO对象 IO对象不能拷贝或者赋值,因此也不能将形参或者返回类型设为流类型 通常使用引用传递或者返回流对象。 流的错误状态 管理输出缓冲 导致缓冲刷新的原因 程序结束 缓冲区满 操纵符endl,flush等 使用unitbuf、nounitbuf设置流的内部状态。cerr设置为unitbuf,所以所有输出操作都会立即刷新缓冲区。 一个输出流可能关联到另一个流,当读写到被关联的流时,会刷新缓冲区。默认情况下cin,cerr都关联到cout,当使用cin读入,或者cerr输出是,都会导致cout缓冲区刷新原创 2021-03-23 00:00:37 · 62 阅读 · 0 评论 -
7.C++基础:类
类的成员函数 (感觉和C++ Primer Plus一致)这里仅仅讨论plus未曾出现过的。原创 2021-03-22 23:59:39 · 71 阅读 · 0 评论 -
6.C++基础:函数
函数基础 函数体,形参和实参(实参是形参的初始值 ); 形参列表;返回类型。 局部对象 自动对象。定义的变量属于此类 局部静态对象。通过static定义的变量。在程序执行过程中一直有效。,知道程序结束才会被销毁。 分离式编译 参数传递 传值参数 通过拷贝变量,或者指针来访问。 传引用 尽量使用传引用来避免拷贝。 const与参数 实际就是const的使用,底层const和顶层const 在参数传递的时候会忽略顶层const。就是说可以使用一个变量来初始化一个常量形参。 数组参数 下面三原创 2021-03-22 23:58:56 · 86 阅读 · 0 评论 -
5.C++基础:语句
迭代语句(循环) for;for();,while;do-while 条件语句 if-else ;switch 跳转语句 break;continue;return ;goto; goto是无条件跳转。所以很容易引起错误,不建议使用。 try语句块和异常处理 int a, b; cin >> a >> b; try { if (b == 0)throw runtime_error("division by zero"); int c = a / b;原创 2021-03-22 23:58:03 · 50 阅读 · 0 评论 -
4. C++基础:表达式
运算符 运算类型转换 类型提升 重载运算符 。。。 左值和右值 等号两边的对象 优先级和结合律 运算符的优先级和运算顺序(左结合律) 求值顺序 对于未制定求值顺序的表达式,求值的时候产生的行为是未定义的。 cout << i << " " << i++ <<endl; cout中没有定义如何对运算对象求值,所以是未定义的,最终结果取决于编译环境。 4种明确了运算对象求值顺序的运算符 && || ?: , 运算对象的求原创 2021-03-22 19:45:12 · 161 阅读 · 0 评论 -
3.C++基础:字符串、向量、数组
string类 直接初始化和拷贝初始化 string s1 = "hallo";//拷贝 string s2("hiya");//直接 string s3(10,'o');//直接+ string的读写 使用IO操作符读取string对象 string s; cin >> s; cout << s << endl; string对象会自动忽略开头空白,读到下一处空白为止。 如果输入hello world,那么只会输出hello。 使用getline读入string 如原创 2021-03-22 19:43:53 · 91 阅读 · 0 评论 -
2.C++基础:变量和基本数据类型
换行符和回车符 \n表示换行符,将光标移动到下一行行首,/r表示回车符,将光标移动到本行行首。 声明与定义 变量声明规定了变量的类型和名字,而定义还要申请空间,或许为变量赋初值。 使用extern将变量申明和定义分开。extern int j 任何显式初始化的声明都将成为定义,覆盖extern的作用。 多文件使用同一个变量,就必须声明和定义分开,在一个文件定义,而在多个文件声明。 变量只能被定义一次。 变量命名 C++标准库保留字。用户定义的标识符不能以两个下划线开头,也不能以下划线加大写字母开头原创 2021-03-22 19:42:47 · 65 阅读 · 0 评论