随笔分类 -  C++

摘要:我们都知道可以使用using关键字引入命名空间,例如:using namespace std; using还有个作用是在子类中引入父类成员函数。 1) 当子类没有定义和父类同名的函数(virtual也一样)时,子类是可以直接调用父类的函数的: 输出 2) 当子类定义了和父类同名的函数时,子类是调用自 阅读全文
posted @ 2017-08-28 14:13 Kjing 阅读(460) 评论(0) 推荐(0)
摘要:我们知道,在成员函数中,如果没有修改成员变量,应该给成员函数加上 const 修饰符,例如 如果不加 const 修饰符,当使用 const 对象调用成员函数时,编译报错: 由测试可知: const 对象有一个隐藏含义:保证成员变量不变。 const 变量还可以作为函数签名的一部分: 可以看到 co 阅读全文
posted @ 2017-06-09 13:21 Kjing 阅读(444) 评论(0) 推荐(0)
摘要:通过conversation function可以把类转成任意类型的值 阅读全文
posted @ 2017-05-16 15:36 Kjing 阅读(276) 评论(0) 推荐(0)
摘要:模板函数std::get<n>()是一个辅助函数,它能够获取到容器的第 n 个元素。模板参数的实参必须是一个在编译时可以确定的常量表达式,编译时会对它检查。 get<n>()模板提供了一种不需要在运行时检查,但能用安全的索引值访问元素的方法。 在std::array中,提供了2种访问元素的方法:[] 阅读全文
posted @ 2017-04-27 15:50 Kjing 阅读(16127) 评论(0) 推荐(1)
摘要:#include #include #include int main() { const char *c = "2:212,2:213,2:214,2:215,2:216,2:217,2:218,2:219,2:220,2:221,2:222,2:223,2:224,2:225,2:226,2:227,2:228,2:229,2:230,2:231,2:232,2:233,2:234... 阅读全文
posted @ 2017-04-06 14:34 Kjing 阅读(499) 评论(0) 推荐(0)
摘要:当给 thread 的执行函数传递指针参数时,没有任何问题,但是如果想传递引用,按照普通函数的调用方法会遇到编译失败: 编译:g++ -std=c++11 -pthread test.cpp失败了: 这里类似于 std::bind,std::thread 和 std::bind 采用了相同的机制,必 阅读全文
posted @ 2016-10-17 16:48 Kjing 阅读(6528) 评论(0) 推荐(0)
摘要:当使用 std::thread 对象执行线程时,必须要调用 join() (或者 detach(),由于 detach() 可以立即调用,所以这里只考虑 join()) 编译:g++ -std=c++11 -pthread test.cpp 如果 doSomething() 会产生异常,则尝试捕获 阅读全文
posted @ 2016-10-17 15:41 Kjing 阅读(758) 评论(0) 推荐(0)
摘要:【摘自C++程序设计语言】 MyString.h MyString.cpp Test.cpp 阅读全文
posted @ 2016-09-20 16:27 Kjing 阅读(485) 评论(0) 推荐(0)
摘要:摘自《C++编程剖析》 输出 为什么会这样?只可以使用 operator[]()(或 at())去改动那些确实存在于容器中的元素。 v.reserve(2) 仅仅保证 vector 的容量至少为 2,并不会创建元素。而 v[0] = 1; 也不会创建第一个元素。只是恰好 v[0] 简单返回了用于存放 阅读全文
posted @ 2016-07-25 13:54 Kjing 阅读(227) 评论(0) 推荐(0)
摘要:摘自《Effective STL》第32条 remove的声明: 如同所有的算法一样,remove 也需要一对迭代器来指定所要进行操作的元素区间。它并不接受容器作为参数,所以 remove 并不知道这些元素被存放在哪个容器中。并且,remove 也并不能从迭代器推知对应的容器和容器类型。 唯一可以从 阅读全文
posted @ 2016-06-24 10:21 Kjing 阅读(13010) 评论(1) 推荐(2)
摘要:摘自《Effective STL》第9条 对于连续内存的容器(vector、deque 或 string),那么最好的办法是使用 erase-remove 的习惯用法: 对于 list,使用 list 的成员函数 remove 更加有效 对于关联容器(set、multiset、map、multima 阅读全文
posted @ 2016-06-23 13:20 Kjing 阅读(511) 评论(0) 推荐(0)
摘要:《Effective STL》第3条 当往容器中保存对象时,保存的并不是提供给容器的那些对象,而是那些对象的拷贝。 如何拷贝?利用的是对象的拷贝构造函数。 成功执行,输出 编译会帮忙生成拷贝构造函数 如果禁用拷贝构造函数 编译时会报错 如果自己定义了拷贝构造函数 执行输出: 执行了自己定义的拷贝构造 阅读全文
posted @ 2016-04-23 14:36 Kjing 阅读(449) 评论(0) 推荐(0)
摘要:【摘自C++Primer】 引用(这里指左指引用) 引用为对象起了另外一个名字。引用并非对象,相反的,它只是为一个已存在的对象所起的另外一个名字。 一般在初始化对象时,初始值会被拷贝到新建的对象中。然而定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它 阅读全文
posted @ 2016-03-01 10:16 Kjing 阅读(193) 评论(0) 推荐(0)