
c++
文章平均质量分 52
temporg
这个作者很懒,什么都没留下…
展开
-
set/map浅谈
set/map浅谈前言STL中的容器主要分成序列式容器以及关联式容器序列式容器主要包括vector, deque, list, stack, queue等等关联式容器主要包括了set, map等等关联式容器的显著特征是每个元素都对应着一个键值对, 一个key, 一个value, 关联式容器没有所谓的头部和尾部, 所以自然也就没有front, back等方法set...原创 2021-01-27 11:10:03 · 255 阅读 · 0 评论 -
stack/queue浅谈
stack/queue浅谈前言stack和queue在STL之中一般不叫做容器, 它们都是以底层的容器来完成工作, stack/queue都是修改了底层容器的接口, 使其形成了另外一种表现形式, 一般把这样的称之为adapterstack众所周知, stack是一种后进先出的数据结构stack只有栈顶才可以push/pop元素stack无法进行遍历操作 ,stack也没有提供对应的迭代器stack的底层容器默认是deque, 也可以自己选择为其他的容器, 比方说list等具有双向开闭的容原创 2021-01-26 15:31:59 · 170 阅读 · 1 评论 -
list浅谈
list浅谈前言一般面试的时候很喜欢问到STL中的vector和list有什么区别, 所以这篇文章在讲list的时候会偶尔和vector进行一些对比list概述list和vector不同, vector是连续的线性空间, vector的插入和删除元素伴随着大量的元素移动, 无法做到常数时间复杂度list是一个环状双向链表, 对于链表的操作大家都清楚,在存储空间中不一定是连续存在的,插入和删除元素的时间可以做到常数级别list迭代器vector的迭代器是重载实现了+, +=等符号的l原创 2021-01-23 11:34:55 · 203 阅读 · 0 评论 -
vector浅谈
vector浅谈前言vector一般来说是作为动态可增长数组来使用, 和array有不小的区别这里主要是对vector的增加元素和删除元素作出一些总结vector迭代器vector的protected成员有3个迭代器start —— 目前使用空间的头部finish —— 目前使用空间的尾部end_of_storage —— 目前可用空间的尾部vector用2个迭代器start和finish表示已经被使用的范围, 用end_of_storage来表示整块空间的范围类似于如下图:原创 2021-01-22 10:26:31 · 178 阅读 · 2 评论 -
goto
goto语句前言我们都在计算机书籍上看到过最好不要使用goto语句, 因为这会破坏程序的局部性但是在项目的编写过程中, 说实话, goto还是很好用的我们在使用goto的时候, 还是要注意一些坑, 不然就会报错goto的坑让我们看如下的程序:#include <iostream>#include <string>#include <map>using namespace std;int main() { int option = 0;原创 2021-01-10 21:15:16 · 154 阅读 · 0 评论 -
内存被填充为0xcc
内存被填充为0xccVS2019如何查看内存打断点debug中选择调试->窗口->内存VS2019查看变量地址debug中查看右下角即时窗口输入&变量名即可查看地址内存填充为0xcc随便写一段代码:#include <iostream>using namespace std;int main() { int a = 0; int b = 1; return 0;}查看a变量附近的内存布局查看变量b附近的内存布局我们原创 2021-01-04 11:10:27 · 740 阅读 · 0 评论 -
vfptr和vbptr
vfptr和vbptr注:由于这篇文章主要是讲vfptr和vbptr, 所以里面不带虚函数或没有虚继承的都不会涉及vfptr:虚函数指针vbptr:虚基类指针1. 普通继承(virtual)#include <iostream>using namespace std;class A {public: virtual void function1() { ; }private: int data1 = 1;};class B {public: vi原创 2020-12-31 12:04:11 · 1789 阅读 · 1 评论