
算法和数据结构
文章平均质量分 60
算法和数据结构
VectorAL
这个作者很懒,什么都没留下…
展开
-
QList 使用注意-at(),[],value()的区别及使用场景
QList 使用注意—at(),operator[],value()的区别及使用场景以前经常使用operator[]和at(),用来查找元素的值。前几天遇到了一个问题,结构体嵌套存储了QList成员,但是无法改变QList元素的值,这才对这几个函数做了详细的了解。T QList::value(int i) const 返回指定位置i处的值如果索引i超出界限,则函数返回一个默认的构造值。如果确定索引值在边界内,则可以使用at(),at()速度稍快。返回值T,相当于返回了一个复制,使用value(i)原创 2021-07-27 18:02:07 · 9989 阅读 · 3 评论 -
数组越界问题
首先,分析以下C语言代码的运行结果:int main(int argc, char* argv[]){ int i = 0; int arr[3] = {0}; for(; i<=3; i++){ arr[i] = 0; printf("hello world\n"); } return 0;}我们想要的结果是打印三行hello world,但是以上代码实际的运行结果是编译成功,无限循环打印"hello world"。代原创 2021-02-25 13:57:59 · 1272 阅读 · 0 评论 -
虚拟内存空间
虚拟内存空间每一个进程都会对应一个虚拟地址空间,32位操作系统会为每个进程分配4G(2的32次方)的虚拟地址空间,而MMU(Memory Management Unit,内存管理单元)负责把这4G虚拟内存映射到实际的物理内存中。这4G空间分为用户空间和内核空间两部分。Windows系统下,用户空间和内核空间以2:2比例划分,Linux系统下用户空间和内核空间以3:1划分。内核空间由所有进程共享,用户空间各自独立,程序是无法直接访问内核空间的。 虚拟地址空间分布如下图所示(以Linux系统为例): (64位原创 2021-02-25 11:19:31 · 3210 阅读 · 6 评论