摘要: 1.1. 前序遍历--递归 class Solution { public: vector<int> preorderTraversal(TreeNode* root) { // 递归 vector<int> ans; preTravel(root, ans); return ans; } void 阅读全文
posted @ 2021-05-29 17:46 萌新的学习之路 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1.C++中的表达式要么是左值(lvalue)要么是右值(rvalue)。 2.当我们使用一个对象作为右值,我们使用的是该对象的值(its contents),当我们使用一个对象作为左值,我们使用的是对象的标识(identity,its location in memory)。 3.我们可以在需要r 阅读全文
posted @ 2021-05-29 17:37 萌新的学习之路 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 1.引用变量需要初始化,绑定(bind)到某个对象,并且一旦初始化之后无法再重新绑定到其他变量。引用变量只是已经存在的对象的一个别名,不是对象。 2.指针变量用于其他对象的间接访问(保存的是其他对象的地址)。指针对象本身是一个对象,可以被赋值/复制,可以指向不同的对象,不一定需要初始化。 3.空指针 阅读全文
posted @ 2021-05-29 17:33 萌新的学习之路 阅读(71) 评论(0) 推荐(0) 编辑
摘要: decltype gives the declared type of the expression that is passed to it. auto does the same thing as template type deduction. So, for example, if you 阅读全文
posted @ 2021-05-29 17:27 萌新的学习之路 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 1.A vector is a class template, a string is class. 模板(template)本身不是函数/类,但是可以指导编译器生成函数/类,该过程叫做实例化(instantiation)。 //常用初始化方法 vector<T> V(n, val); vector 阅读全文
posted @ 2021-05-29 17:24 萌新的学习之路 阅读(67) 评论(0) 推荐(0) 编辑
摘要: C++11中的值类型(value categories) 基本类型 表达式有两个属性: has identity. 能够确定某个表达式是否和另一个表达式指涉[refers to]同一个实体,例如,通过比较它们标识[identify]出来的函数或者对象的地址(直接或间接得到的)。 can be mov 阅读全文
posted @ 2021-05-29 16:37 萌新的学习之路 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 1.变量名的作用域(the scope of name) 对象的生命周期(the lifetime of an object) 2.各源文件(.cpp)可以单独编译得到目标代码(.obj),所有目标代码链接得到可执行程序(.exe) 3.局部静态对象 local static objects 在通过 阅读全文
posted @ 2021-05-29 16:14 萌新的学习之路 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 1.类(class)是使用了数据抽象和封装技术的抽象数据类型。 接口和实现分开。 2.定义在类内的函数是隐式地(implicitly)内联函数。 3.成员函数通过隐式参数 this 指针访问调用它们(函数)的对象。当调用成员函数的时候,this被初始化为调用该函数的对象的地址。this是const 阅读全文
posted @ 2021-05-29 15:13 萌新的学习之路 阅读(60) 评论(0) 推荐(0) 编辑
摘要: Stream-based I/O (基于流的输入输出) 1.预定义的标准流对象。 cin // istream对象,读取标准输入 cout // ostream对象,写入标准输出 cerr // ostream对象,写入标准错误 >> // 从istream对象读取 << // 写入ostream对 阅读全文
posted @ 2021-05-29 15:05 萌新的学习之路 阅读(78) 评论(0) 推荐(0) 编辑
摘要: Sequential Containers vector deque(双端对列) list(链表) string array(替代内置数组) forward_list(单链表) Sequential Containers Adaptors stack queue priority_queue 1.容 阅读全文
posted @ 2021-05-29 14:59 萌新的学习之路 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 头文件<algorithm>中的算法。 不直接作用于容器,通过迭代器遍历容器元素。 算法不会改变底下容器的大小,可以改变容器中元素的值。 1.求和 int sum = accumulate(C.cbegin(), C.cend(), 0); // 第三个参数表示sum = 0开始,C for Con 阅读全文
posted @ 2021-05-29 14:42 萌新的学习之路 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 关联容器中的元素通过键来存储和检索。 顺序容器中的元素是按其在容器中的位置顺序存储和访问的。 map // 头文件 <map> multimap set // 头文件 <set> multiset unorder_map // 头文件 <unordered_map> unorder_multimap 阅读全文
posted @ 2021-05-29 14:37 萌新的学习之路 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 1.为什么使用动态内存: 不知道需要多少对象 不知道需要的对象的确切类型 希望在多个对象之间共享数据 2.动态分配的对象的生命周期与创建它们的位置无关。 它们一直存在直到被明确释放。 3. 标准库定义了两种智能指针类型,用于管理动态分配的对象。智能指针确保在合适的时候自动释放它们所指向的对象。 4. 阅读全文
posted @ 2021-05-29 14:28 萌新的学习之路 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 类通过定义5个特殊的成员函数:复制构造函数、复制赋值操作符、移动构造函数、移动赋值操作符和析构函数,来控制对象的复制,移动,赋值和销毁。 copy constructors // 定义对象初始化另一个对象时会发生什么。 move constructors copy-assignment operat 阅读全文
posted @ 2021-05-29 14:15 萌新的学习之路 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 1. 重载的操作符函数的形参数量要与操作符的操作数相同。 2. 如果操作符函数是成员函数,则第一个(左)操作数绑定到隐式的this指针。 3. 操作符函数必须是类的成员或具有至少一个类类型形参。(因为内置类型的操作符已定义且不能更改) 4. 重载运算符的返回类型通常应该与内置版本兼容:逻辑和关系运算 阅读全文
posted @ 2021-05-29 13:56 萌新的学习之路 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 1.面向对象编程:数据抽象,继承,动态绑定。 2.数据抽象:接口和类实现分开。继承:可以建模相似类型之间的关系的类。动态绑定:使用不同类型的对象并忽略它们的不同。 3. 基类将依赖类型的函数与期望其派生类不加更改地继承的函数区分开来。 基类定义虚函数使得派生类可以自定义该函数。 4.类派生列表指定了 阅读全文
posted @ 2021-05-29 13:42 萌新的学习之路 阅读(76) 评论(0) 推荐(0) 编辑
摘要: vscode的3个配置文件说明。 VS需要为每一个文件夹做单独配置,所以建议把.vscode文件夹放到你常用的文件夹的顶层,这样就不用重复配置了。 不用每个新cpp文件就要一套配置。这些配置在你配置好的文件夹内的所有子文件夹和文件都能使用。 task.json task.json文件告诉VS Cod 阅读全文
posted @ 2021-05-29 13:09 萌新的学习之路 阅读(1131) 评论(0) 推荐(0) 编辑
摘要: TextQueries Project 问题: 我们将实现一个简单的文本查询程序。 我们的程序将允许用户在给定的文件中搜索可能出现的单词。 查询的结果将是单词出现的次数和该单词出现的行列表。 如果一个单词在同一行中出现多次,我们将只显示该行一次。行将按升序显示。 例子: 在给定输入文件中查找elem 阅读全文
posted @ 2021-05-29 13:04 萌新的学习之路 阅读(44) 评论(0) 推荐(0) 编辑