- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 C++ iterator迭代器的理解
vector (iterator) 理解迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。在刚接触iterator的时候,有点搞不清楚是个什么东东,为了弄清楚它的本质,简单分析如下1.定义一个动态数组vector array;数组类有5个元素分别是1 2 3 4 52.使用vector::iterator迭代器来打印输出地址内容vector<int&
2022-01-18 10:07:12 633
原创 C++(冒泡排序)升序降序的优化算法
当使用简单的冒泡排序进行升序或者降序排列的时候,通常的写法会出现以下问题如果已经完成了所有的数据排列 if(array[i]>array[i+1]) 中的代码就不会再被执行,所以我们在进入内循环中之前的bJudge永远都为ture那么既然数据已经完成了排列,多余次数的循环是毫无意义的为了加快效率,我使用了一个bJudge作为判断 当每次从外进入内之前 先把bJudge赋值为true 只要进行了一次替换 bJudge的则为false 当数据完成替换那么bjudge就永远为true 为了加快效率 这
2022-01-17 14:37:36 613
原创 个人笔记,C++引用的使用
当同一个类实例化了类1和类2,如果用 类2 = 类1 进行复制,类2实际上不会改变自身的数据为类1,而是把类2指向的地址改为了类1的地址这样就出现了一个问题假设当我们使用new 或malloc分配了一段内存使用完后需要调用析构函数进行释放你以为类1会调用~类1的析构函数 类2会调用~类2的析构函数那就错了因为类1和类2共同指向了类1 所以只有类1的析构函数会被调用 并且会被调用两次这就照成了 类1的内存被释放了 ,然后类2指向了类1 又释放了一次 这就会出现错误解决方法:1.使用带对象参数的
2022-01-16 20:23:16 268
原创 # 关于virtual修饰符 反汇编分析 指针和引用的区别
1.virtual修饰符virtual作为C++里的虚表函数关键字class Data{public: int x = 2; int y = 3; void add() { } virtual void Function1() { }};1.把以上类实例名为obj的对象2.并使用obj.add(); obj.Function1();调用函数,经过反汇编后查看的是直接寻址//obj.add();00DE19E2 8D 4D EC lea
2021-11-09 10:47:55 430
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人