摘要: 请你回答一下什么是右值引用,跟左值又有什么区别? 右值引用是C++11中引入的新特性 , 它实现了转移语义和精确传递。它的主要目的有两个方面: 1. 消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。 2. 能够更简洁明确地定义泛型函数。 左值和右值的概念: 左值:能对表达式取地址、或 阅读全文
posted @ 2020-06-20 18:56 John_yan15 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 请你来说一下C++中类成员的访问权限 C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。在类的内部(定义类的代码内部),无论成员被声明为 public、protected 还是 pr 阅读全文
posted @ 2020-06-20 18:51 John_yan15 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 请你来说一下map和set有什么区别,分别又是怎么实现的? map和set都是C++的关联容器,其底层实现都是红黑树(RB-Tree)。由于 map 和set所开放的各种操作接口,RB-tree 也都提供了,所以几乎所有的 map 和set的操作行为,都只是转调 RB-tree 的操作行为。 map 阅读全文
posted @ 2020-06-20 18:43 John_yan15 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1、STL概述 为了建立数据结构和算法的一套标准,并且降低他们之间的耦合关系,以提升各自的独立性、弹性、交互操作性(相互合作性,interoperability),诞生了STL。 STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。 阅读全文
posted @ 2020-06-20 15:15 John_yan15 阅读(461) 评论(0) 推荐(0) 编辑