摘要: 判断值类型的方法有三种: 通过decltype 通过declval 通过result_of #include #include int fn(int) { return int(); } // function typedef int(&fn_ref)(int); ... 阅读全文
posted @ 2019-06-26 23:30 osbreak 阅读(917) 评论(0) 推荐(0) 编辑
摘要: map与unordered_map的区别 1、map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素, 因此,对于map进行的查找,删除,添加等一系列的操作都相当于是对红黑树进行这样的操作,故红黑树的效率决定了map的效率。 2、unordered_map: unordered_map内部实现了... 阅读全文
posted @ 2019-06-26 22:40 osbreak 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 动机: 在某些情况下我们可能会"过度地使用继承来扩展对象的功能”由于继承为类型引入的静态特质,使得这种拓展方式缺乏灵活性; 并且随着子类的增多(拓展功能的增多)",各种子类的组合(拓展功能的组合)会导致更多子类的膨胀。 如何使"对象功能的拓展"能够根据需要来动态实现?同时避免"拓展功能的增多"带来的 阅读全文
posted @ 2019-06-26 21:49 osbreak 阅读(109) 评论(0) 推荐(0) 编辑
摘要: #include #include class MyString { private: char* m_data; size_t m_len; void copy_data(const char* s) { m_data = new char[m_len + 1]; memcpy(m_data, s, m_len); ... 阅读全文
posted @ 2019-06-26 21:43 osbreak 阅读(284) 评论(0) 推荐(0) 编辑