![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 71
John2King
machine learning & computer vision 小白
展开
-
类的设计原则
开闭原则Software entities (classes, modules, function, etc.) should be open for extension, but closed for modification.软件实体(模块,类,方法等)应该对扩展开放,对修改关闭。开闭原则(OCP:Open-Closed Principle)是指在进行面向对象设计(OOD:Obje转载 2016-06-17 14:34:46 · 502 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter16.模板与泛型编程
part1.定义模板1.模板是泛型编程的基础2.一个模板就是一个编译器用来生成特定类类型或函数的蓝图。3.标准库算法都是函数模板,标准库容器都是类模板。4.除了定义类型参数,也可以在模板中定义非类型参数,表示一个值,而非类型。1)我们通过特定的类型名而非关键字class或者typename来指定费类型参数。template ...2)一个非类型参数可以是一个整型,或者原创 2016-10-16 19:01:32 · 544 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter19.特殊工具与技术
以下是c++未被广泛应用的特征。part1.控制内存分配1.可以重载new与delete。一共有八个版本,可以重载任意一个,但是要求自定义版本必须位于全局作用域或者类作用域。2.demovoid *operator new(size_t size){ if (void * mem = malloc(size) return mem; e原创 2016-10-20 00:18:45 · 347 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter9.顺序容器
part1.概述1.类型:vector,deque,list,forward_list,array,string2.与内置数组类似,array对象大小固定,不支持添加删除。3.forward_list为了保证性能,不提供size操作4.一般用vector5.如果程序只在读写时需要再中间插入,随后需要随机访问元素,则1)为了避免在中间插入,可以通过用vector添加,并用so原创 2016-10-07 21:35:20 · 311 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter8.IO Lib
part1.IO类1.进行IO操作的函数通常以引用方式传递和返回流。而且是const的2.输出缓冲,因为cin和cerr都关联到cout,因此读cin或者写cerr都会刷新缓冲区3.除了endl,还有不加任何字符的刷新,flush;以及添加空字符然后刷新的ends4.可以设置unitbuf和nounitbuf,那么之间的数据会立即刷新part2.文件和strin原创 2016-10-07 21:34:25 · 283 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter 6.函数
part1.参数传递1.数组形参,可使用标准库规范void print(const int *beg, const int *end){ while(beg != end) cout }usage: int j[2] = {0, 1} print(begin(j), end(j))也可以显示传递表示原创 2016-10-06 21:50:21 · 428 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter 3.字符串,向量,数组
part1.String1.头文件不要包含using,因为头文件内容会被拷贝到所有引用它的文件中去。容易导致冲突。2.string s4(10, ‘c’) => cccccccccc 初始化10个c的string3.函数:s.empty() s.size()4.string对象会自动忽略开头的空白(空格符,换行符,制表符)5.使用c++版本的C标准库(cstdio ra原创 2016-10-06 21:48:32 · 298 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter18.用于大型程序的工具
part1.异常处理1.用类去管理资源,而非显式去释放,因为异常发生的时候,析构函数一定会执行,而手动释放的代码可能不会执行。2.catch(...)会捕获所有异常,因此应该将其置于其他catch的最后。3.noexcept表示函数不会抛出异常。part2.命名空间1.多个库将名字放置在全局命名空间将引命名空间污染。2.每个命名空间是一个作用域,可以是不连续的。命名原创 2016-10-19 00:12:04 · 329 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter17.标准库特殊设施
part1.tuple类型1.一个tuple可以有任意数量的成员。每个确定tuple类型的成员数目是固定的。是一个快速而随意的数据结构。2.构造函数是explicit,必须使用直接初始化:tuple threeD{1, 2, 3};3.make tuple使用初始值的类型来推断tuple类型。auto item = make_tuple( “0-999-xxx”,3, 20.0原创 2016-10-18 01:30:13 · 339 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter15.OOP
part1:概述1.OOP核心思想:数据抽象,可以将类的接口与实现分离使用继承,可以定义相似的类型并对其相似关系建模动态绑定,可以在一定程度上忽略相似类型的区别,以统一的方式管理他们的对象2.使用基类的引用或指针调用一个虚函数将发生动态绑定part2.定义基类和派生类1.基础类需要定义一个虚析构函数,即使该函数不执行任何实际操作。2.基础类需要把它的两种成员原创 2016-10-14 00:17:57 · 458 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter14.重载运算与类型转换
part1.基本概念1.重载运算符函数的参数数量与该运算符作用的运算对象数量一样多。如果一个运算符函数是成员函数,则this绑定到左侧运算对象上。函数的参数数量会比运算对象数量少一个。2.只能重载已有运算符。不能发明,比如**3.可以直接调用一个重载的运算符函数//二者等价data1 += data2;data1.operator+=(data2);4.不应该重载逗号,原创 2016-10-13 00:22:51 · 306 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter13.拷贝控制
part1.拷贝、赋值与销毁1.拷贝构造函数,拷贝赋值运算符,移动构造函数,移动赋值运算符,析构函数对应的操作称为拷贝控制操作2.拷贝构造函数1)第一个参数必须为引用类型。因为在函数调用过程中,具有非引用类型的参数要进行拷贝初始化。否则构造函数调用无法成功。2)由于常被隐式的使用,所以不能是explicit3)合成拷贝构造函数,对类类型成员,会试用期拷贝构造函数来拷贝,内置类型原创 2016-10-12 01:32:23 · 355 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter12.动态内存
part1.智能指针1.是一种模板。2.通用的操作: shared_ptr > p2; if( p2 ){…}//若p2指向一个对象则为true p2.get() //返回p2中保存的指针3.shared_ptr独有操作: make_shared (args); //最安全的分配和使用动态内存的方法 share原创 2016-10-11 00:14:53 · 491 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter11.关联容器
part1.概述1.关联容器中的元素是按关键字来保存和访问的,顺序容器是按它们在容器中的位置来顺序保存访问的。2.8个关联容器。不同之处有三:1)set/map 2)是否允许重复关键字 (multi)3)顺序还是无序(unordered)。 3.关联容器也是模板。part2.map1.如果map不含key,那么下标运算会创建新元素。eg:++word_count[ wo原创 2016-10-10 00:51:16 · 351 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter10.泛型算法
part1.概述1.泛型算法不直接操作容器,而是遍历两个迭代器制定的一个元素范围。2.迭代器令算法不依赖与容器,但是算法依赖于元素类型的操作。3.算法不会改变底层容器的大小part2.初识1.只读算法。int sum = accumulate(vec.cbegin(), vec.cend(), 0 );string sum = accumulate(vec.cb原创 2016-10-09 00:10:07 · 334 阅读 · 0 评论 -
读书笔记:C++ primer 5th edition--chapter7.类
part1.基本用法1.const 成员函数示例代码string Sales_data::isbn (const Sales_data *const this){ return this->isbn;}2.成员函数返回值当我们定义的函数类似于内置运算符时,应该令该函数的行为尽量模仿这个运算符。内置运算符把它的左侧运算对象当成左值返回。因此成员函数也应返回:return *this;原创 2016-10-07 00:04:13 · 428 阅读 · 0 评论