随笔分类 - <五>:C++运算符重载
摘要:MyQueue版本1 #include <iostream> using namespace std; template<typename T> class MyQueue { private: struct QueueItem { QueueItem(T _data = T(), QueueIte
阅读全文
摘要:new ,delete 运算符 int *p =new int; delete p; 看一下汇编代码 可以看到new 和delete 运算符其实也是 operator运算符重载函数的调用 malloc和new malloc 按字节开辟内存 new在开辟内存的时候需要指定类型 new int[10]
阅读全文
摘要:我们之前有<C++模板编程模块>中的第<四>节 理解空间配置器allocator优化STL中的Vector 我将在此基础上加入迭代器功能代码 Iterator 为什么可以遍历所有的容器的方式都一样? auto it =continer.beign(); for( ;it!=continer.end(
阅读全文
摘要:迭代器的功能: 提供一种统一的方式,来透明的遍历容器 理解 begin()方法,end()方法, ++ , * 的用处 其中 C++11 中提供的foreach的方式,其底层还是通过迭代器来进行遍历的. #include <iostream> using namespace std; class M
阅读全文
摘要:我们结合运算符重载知识实现string 类 在自己实现的String类中可以参考C++中string的方法 例如构造,加法,大小比较,长度,[] 等操作. 当前的MyString 类中,暂时不加入迭代器,我们将在下一节中加入迭代器的代码. #include <iostream> using name
阅读全文
摘要:C++的运算符重载:使对象的运算表现得和编译器内置类型一样 如下代码,如果T是整形,那很好理解,但是如果 T 是一个 Student 类, a + b ?怎么操作,两个学生类怎么相加? 这个就是我们要说的运算符重载问题 template<typename T> T sum(T a,T b){ ret
阅读全文