随笔分类 - C/C++
摘要:智能指针的循环引用 class Node { public: shared_ptr<Node> left; shared_ptr<Node> right; Node(int v) { this->value = v; cout << "Constructor" << endl; } ~Node()
阅读全文
摘要:memcpy的用法 在项目中经常用到 来实现内存的拷贝工作,如下代码片段 的函数原型为: memcpy函数的功能是从源内存地址的起始位置开始拷贝若干个 字节 到目标内存地址中,即从源source中拷贝num个 字节 到目标destin中。 示例代码 int main() { vector vec;
阅读全文
摘要:1 C++中使用vector来表示二维数组 声明一个二维数组: 将变量dp初始化为一个含有row个元素的vector对象,其中每个元素又都是含有col个元素的vector对象。内部的vector对象的基类型为int,外部vector对象的基类型为 vector。 获取数组的row和col 2 自己动
阅读全文
摘要:今天在使用VS2017写程序时,报错: 出错的代码如下: include "pch.h" include include using namespace std; class TA { public: TA(int &i) :m_i(i) {}; ~TA(); //TA(const TA& ta);
阅读全文
摘要:C++ STL中,哈希表对应的容器是 unordered_map(since C++ 11)。根据 C++ 11 标准的推荐,用 unordered_map 代替 hash_map。 与Map的区别 STL中,map 对应的数据结构是 红黑树 。红黑树是一种近似于平衡的二叉查找树,里面的数据是有序的
阅读全文
摘要:Map的常见函数 Map的实现机制 STL中的Map底层实现机制是RB树(红 黑树)
阅读全文
摘要:开发环境: Qt Creator 4.8.2 在写程序的时候,遇到了编译器报错 出错的代码部分如下: 根据提示,修改代码如下后,编译器错误消失 经过排查,终于发现了这个错误的原因,首先定义了一个抽象类及其子类 然后又定义了一个类 注意看可以发现,新定义的类名为ConcreteIterator,而Ag
阅读全文
摘要:一 出错误的代码 开发环境: visual studio 2017 社区版 编译上述代码,VS2017提示错误 一开始这个错误让我百思不得其解,因此将同样的代码放到Linux下编译调试。g++提示的错误如下: 二 错误的解决 经过排查发现,错误出现在下面这两行代码 其中HRDepartment类和F
阅读全文
摘要:在看《Essential C++》的时候,碰到一句话,不是很明白,今天在看《程序员面试宝典》的时候,又看到了这个问题,记录下来。 《Essential C++》中写到 看下面的代码 上面代码在运行时,由于在生成CChlid对象c时,实际上在调用CChild类的构造函数之前必须首先调用其基类CBase
阅读全文
摘要:STL容器所提供的都是值(value)寓意,而非引用(reference)寓意,也就是说当我们给容器中插入元素的时候容器内部实施了拷贝动作,将我们要插入的元素再另行拷贝一份放入到容器中,而不是将原数据元素直接放进容器中,也就说我们提供的元素必须能够被拷贝 . 看下面的代码: 这个程序在退出的时候会出
阅读全文
摘要:先看代码 其参数为引用,不能对右值取引用,也就是说 这行代码是错误的。 解决办法:重载PushBack()函数 另: 在VS2017开发环境中,将PushBack()的函数实现如下 这样在使用PushBack()时,编译不会报错 但在Linux下,gcc版本为4.4.6,即便是写为 编译器仍旧会报错
阅读全文
摘要:开发环境:VS2017 出错的代码如下: include "pch.h" include "MyArr.hpp" include include using namespace std; int main() { MyArray arr(); std::cout include using name
阅读全文
摘要:开发环境 VS2017 代码如下: 报错如下: 经过查找发现,.cpp文件中函数名最后的分号没有去掉
阅读全文
摘要:开发环境 Qt Creator 4.8.2 编译器 MinGw 32 bit 在类中定义了一个static data member 当编译程序时,报错 error: undefined reference to `Triangular::_elems' //以下放在程序代码文件中 vector Tr
阅读全文
摘要:开发环境 Qt Creator 4.8.2 编译器版本 MinGw 32 bit const_cast 用法: 说明: 常量指针被转化成非常量指针,并且仍然指向原来的对象;常量引用被转换成非常量引用,并且仍然指向原来的对象;常量对象被转换成非常量对象。 如下代码在Qt开发环境中报错 将代码修改后如下
阅读全文
摘要:语法: 表达式1 ? 表达式2 : 表达式3; 等价于
阅读全文
摘要:可对矢量执行的操作 所有的STL容器都提供了一些基本方法,其中包括size() 返回容器中元素数目,swap() 交换两个容器的内容,begin() 返回一个指向容器中第一个元素的 迭代器 ,end() 返回一个表示超过容器尾的 迭代器 。 什么是迭代器? 迭代器是一个 广义
阅读全文
摘要:1 多态产生的背景 希望同一个方法在派生类和基类中的行为是不同的,换句话来说,方法的行为取决于调用该方法的对象。 2 解决多态的两种方法 1)在派生类中重新定义基类的方法 2)使用虚方法 3 虚函数的定义 拥有 Virtual 关键字的函数称之为虚函数
阅读全文
摘要:转载自https://blog.csdn.net/newcong0123/article/details/52725595 在C语言中static的作用如下 第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 第二、stati
阅读全文