上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 22 下一页
摘要: remove 用来移除容器对应迭代器区间[first, last)中,所有值与value相等的元素。相等通过operator== 来比较。 remove_if 用来移除容器对应迭代器区间[first, last)中,满足判别式p返回true的元素。 函数模板原型 #include <algorith 阅读全文
posted @ 2021-12-16 01:09 明明1109 阅读(2387) 评论(0) 推荐(1) 编辑
摘要: 目录 在学习C++ Primer时,我们知道STL有3种插入迭代器,分别是:back_inserter,front_inserter,inserter 。 back_inserter:利用push_back在尾部插入元素; front_inserter:利用push_front在头部插入元素; in 阅读全文
posted @ 2021-12-14 22:38 明明1109 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 条款49:了解new-handle的行为 Understand the behavior of the new-handler. operator new:分配例程; operator delete:归还例程。 new-handler:operator new无法满足客户的内存需求时所调用的函数。 阅读全文
posted @ 2021-12-13 10:43 明明1109 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 条款53:不要轻忽编译器警告 Pay attention to compiler warnings. 在C++,编译器作者通常对于将会发生的事情比程序员有更好的领悟。例如,下面的例子很常见: 程序员希望以Df重新定义virtual Bf,但其中有个错误:B::f是const成员函数,而在D中没声明。 阅读全文
posted @ 2021-12-09 10:51 明明1109 阅读(124) 评论(0) 推荐(0) 编辑
摘要: using 声明 using声明(using declaration),一次引入命名空间的一个成员。通过using声明,我们可以清楚知道程序中使用的到底是哪个名字。using声明不允许同名成员,如果有,就不能使用using声明,可以用全名替代。 有效范围从using声明处开始,一直到using声明所 阅读全文
posted @ 2021-12-07 20:55 明明1109 阅读(1341) 评论(0) 推荐(0) 编辑
摘要: C/C++中,计算算法时间方法各异,不同系统平台提供系统调用接口可能不一样。 使用clock() clock()获取从程序启动到调用时,CPU计时时间,精度CLOCKS_PER_SEC。 CLOCKS_PER_SEC也是每个CPU计数所代表的时间含义,比如CLOCKS_PER_SEC为1000,代表 阅读全文
posted @ 2021-12-06 09:34 明明1109 阅读(1061) 评论(0) 推荐(0) 编辑
摘要: 条款41:了解隐式接口和编译期多态 Understand implicit interfaces and compile-time polymorphism. 显式接口和运行期多态 面向对象编程中,以显式接口(explicit interface)和运行期多态(runtime polymorphis 阅读全文
posted @ 2021-12-06 08:55 明明1109 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 背景 C++ 11 新特性对象移动,可以移动对象而非拷贝。在某些情况下,对象拷贝后就立刻被销毁了,比如值传递参数,对象以值传递方式返回,临时对象构造另一个对象。在这些情况下,如果使用移动对象而非拷贝对象能大幅提升性能。 string s1(string("hello")); // 无名对象strin 阅读全文
posted @ 2021-12-05 22:48 明明1109 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 为什么会有allocator类 new将内存分配和对象构造组合到了一起,delete将对象析构和内存释放页组合到了一起。 当申请分配一大块内存时,我们通常希望将内存分配和对象构建分离开。比如,下面将内存和对象构造组合到一起可能导致不必要的浪费: string *const p = new strin 阅读全文
posted @ 2021-12-05 16:01 明明1109 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 问题的引出 使用find_if时,可以用lambda表达式作为其第三个可调用对象的实参。然而,lambda表达式只适合用于简单的场景,如表达式只用一到两次。当可调用单元要要大量复用时,最好还是能写成函数形式,于是,我们写出check_size函数,用于过滤出尺寸大于sz的字符串。 bool chec 阅读全文
posted @ 2021-12-03 09:49 明明1109 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 运行时类型识别(run-time type idenfitication,RTTI)的功能由2个运算符实现: 1)typeid,用于返回表达式的类型; 2)dynamic_cast,用于将base class pointer(或reference)安全转型为derived class pointer 阅读全文
posted @ 2021-12-01 16:44 明明1109 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 模板特例化由来 单一模板对任何可能的模板实参并不总是合适,并且能实例化的。比如,compare的例子,用于比较2个实参: // 第一个版本:比较任意两个类型 template <typename T> int compare(const T&, const T&); // 第二个版本:可以比较字符串 阅读全文
posted @ 2021-11-29 22:16 明明1109 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 条款32:确定你的public继承塑模出is-a关系 Inheritance and Object-Oriented Design public继承奉行的规则 如果class D以public形式继承自class B,便是告诉编译器:每个类型为D的对象同时是一个类型为B的对象,反之不成立。需要用到D 阅读全文
posted @ 2021-11-27 17:03 明明1109 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 函数调用运算符 函数调用运算符用“operator ()”表示。如果类重载了函数调用运算符,可以像使用函数一样使用该类对象。 例如,像下面一样重载了某个struct或class的operator(),其对象就能像函数一样调用。 // 类重载operator() struct absInt { // 阅读全文
posted @ 2021-11-23 00:14 明明1109 阅读(481) 评论(0) 推荐(0) 编辑
摘要: lambda表达式简介 lambda表达式是C++11新特性(C++11 特性),用于创建一个可调用单元,可理解成匿名内联函数。 可调用单元 是指什么? 可调用单元通常是指可调用对象(或函数)。 可调用对象 一个对象或表达式,如果可对其使用可调用运算符("()"),则称这个对象或表达式为可调用对象。 阅读全文
posted @ 2021-11-22 15:15 明明1109 阅读(2720) 评论(0) 推荐(0) 编辑
摘要: 条款26:尽可能延后变量定义式的出现时间 Postpone variable definitions as long as possible. 为什么要延后变量定义? 因为定义一个变量会有构造成本和析构成本,而该变量可能从始至终并未使用过。因此,如果能尽量避免,就能减少这些成本。 如何延后变量定义? 阅读全文
posted @ 2021-11-20 20:12 明明1109 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 条款18:让接口容易被正确使用,不易被误用 Make Interfaces easy to use correctly and hard to use incorrectly. 如果想要开发一个“容易被正确使用,不容易被误用”的接口,考虑客户可能犯什么样的错误呢? 假设用一个用来表现日期的class 阅读全文
posted @ 2021-11-18 21:58 明明1109 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 条款13:以对象管理资源 Use objects to manage resources. 传统new/delete 申请、释放资源的问题 class Investment { ... }; class Factory { public: static Investment* createInves 阅读全文
posted @ 2021-11-17 10:05 明明1109 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 条款05:了解C++默认编写并调用了哪些函数 Know what functions C++ silently writes and calls. 如果你没自己声明,编译器就会为你的class声明:一个copy构造函数、一个copy assignment操作符,一个析构函数。如果没有声明任何构造函数 阅读全文
posted @ 2021-11-16 12:59 明明1109 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 条款:01:视C++为一个语言联邦 View C++ as a federation of languages. 如何理解C++? 将C++视为一个由相关语言组成的联邦而非单一语言。主要的4个次语言(sublanguage): C, C++的基础 Object-Oriented C++, C wit 阅读全文
posted @ 2021-11-15 22:47 明明1109 阅读(133) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 22 下一页