1、调整visio的画布大小

按住Ctrl鼠标移动到画布边缘即可

2、两个栈实现一个队列

一个栈用于入队,一个用于出队

#include<iostream>
#include<stack>
using namespace std;
template<class T>
struct MyQueue
{
void push(T &t) //入队操作,通过s1实现
{
s1.push(t);
}
T front() //作用是把栈s1中的元素压入栈s2
{
if(s2.empty())
{
if(s1.size()==) throw;
while(!s1.empty())
{
s2.push(s1.top());
s1.pop();
}
}
return s2.top();
}
void pop() //从s2出栈
{
if(s2.empty())
{
while(!s1.empty())
{
s2.push(s1.top());
s1.pop();
}
}
if(!s2.empty())
{
s2.pop();
}
}
stack<int> s1;
stack<int> s2;
}; int main()
{
MyQueue<int> mq;
int i;
for(i=;i<;i++)
{
mq.push(i);
}
for(i=;i<;i++)
{
cout<<mq.front()<<endl;
mq.pop();
}
system("pause");
return ;
}

3、堆,空闲内存地址链表链表

http://blog.csdn.net/luckyxiaoqiang/article/details/8669602

比如我要分配80个字节,现在有两个相邻的空闲块,每块50字节,假设没有其他空闲块,这样内部分配函数第一次调用找不到满足要求的块,失败,这时我们要调用合并空闲块函数,将连续的空闲块合并成一个大的空闲块,之后再次调用内部分配函数,所以用一个外部内存分配函数把这些过程封装起来。还有一种空闲块合并策略,就是立即合并,每次释放的时候要检查前后有没有空闲块,当然也需要其他的一些信息,这些《深入理解计算机系统》里都有讲到。

《深入理解计算机系统》

4、关于堆最大可以分配的内存(win7 32位的对内存连1.6G都分配不了)

32位的系统能操作的地址空间只有2的32次,也就是4G,所以无论虚拟空间多大,堆最大能分配多大。

#include<stdio.h>//win7 32位的对内存连1.6G都分配不了
void main()
{
int *Test=new int[**];//分配800M=4B*(200*1024*1024)=4B*(200*1K*1K)=4B*(200*1M)=4B*200*1M=800MB内存
int* Test2=new int[**];// 分配800M内存
}

malloc返回的地址只是逻辑地址空间的一个地址值。在使用该地址的时候才由操作系统映射到物理内存去访问内存数据。不存在malloc直接返回物理内存的说法。即使用VirtualAlloc分配的虚拟内存,提交以后还不是照样要分配物理内存。知道使用的地址是逻辑空间地址,使用该地址的时候由操作系统做映射到物理内存的动作就可以了

5、可用内存空间链表

http://zhidao.baidu.com/link?url=fu7LNzkSXtrNvhdm_0-DrHx4AskV90fTCmEqJHTHW2wlPGbgp9j9QEeq7mk1mmAyOkqoRqf_ED2bldtU0WsEpq

20140506 visio 画布大小 栈实现队列 堆空闲内存地址链表 堆最大可分配的内存 可用内存链表的更多相关文章

  1. 什么是“堆”,"栈","堆栈","队列",它们的区别?

    堆:什么是堆?又该怎么理解呢? ①堆通常是一个可以被看做一棵树的数组对象.堆总是满足下列性质: ·堆中某个节点的值总是不大于或不小于其父节点的值: ·堆总是一棵完全二叉树. 将根节点最大的堆叫做最大堆 ...

  2. 堆”,"栈","堆栈","队列"以及它们的区别

    如果你学过数据结构,就一定会遇到“堆”,"栈","堆栈","队列",而最关键的是这些到底是什么意思?最关键的是即使你去面试,这些都还会问到, ...

  3. 图解堆算法、链表、栈与队列(Mark)

    原文地址: 图解堆算法.链表.栈与队列(多图预警) 堆(heap),是一类特殊的数据结构的统称.它通常被看作一棵树的数组对象.在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间 ...

  4. 栈 VS 队列

    linkStack.javalinkQueue.java程序强调栈和队列是概念上的实体,独立于它们的具体实现.用数组或者是用链表实现栈都是一样的.栈的重要性在于它的push()操作和pop()操作.以 ...

  5. visio调整画布大小和旋转画布(转)

    1.调整画布大小: 鼠标移至画布边界(注意不能是顶点附近),按下ctrl,就会出现双向箭头,拖动鼠标即能调整画布大小. 2.旋转画布: 鼠标移至画布顶点或附近,按下ctrl, 出现单箭头优弧,移动鼠标 ...

  6. visio 改变画布大小

    按住键盘Ctrl键,将鼠标箭头移动到画布边界处就可以自由拖动画布大小了.

  7. Java 堆、栈、队列(遇见再更新)

    目录 Java 栈.队列 栈 常用方法 案例 队列 Java 栈.队列 栈 常用方法 boolean empty() 测试堆栈是否为空 Object peek() 查看堆栈顶部的对象 Object p ...

  8. [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)

    再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...

  9. Java数据结构和算法 - 栈和队列

    Q: 栈.队列与数组的区别? A: 本篇主要涉及三种数据存储类型:栈.队列和优先级队列,它与数组主要有如下三个区别: A: (一)程序员工具 数组和其他的结构(栈.队列.链表.树等等)都适用于数据库应 ...

随机推荐

  1. (转)spring ioc原理(看完后大家可以自己写一个spring)

    原文地址:https://blog.csdn.net/it_man/article/details/4402245 最近,买了本Spring入门书:spring In Action .大致浏览了下感觉 ...

  2. Kafka启动报错

    文章目录 问题 解决 问题 通过 ./kafka-server-start.sh ../config/server.properties 启动kafka 之前在server.properties中修改 ...

  3. 2019牛客多校第⑨场J Symmetrical Painting(思维,离散化)

    原题:https://ac.nowcoder.com/acm/contest/889/J 题意: 二维平面上有n个矩形,每个矩形左下角是(i−1,Li)(i−1,Li), 右上角是(i,Ri)(i,R ...

  4. 安装项目依赖pipreqs并生成requirements.txt

    安装项目依赖:sudo pip3 install pipreqs 生成依赖文件(requirements.txt):pipreqs ./   # 进入项目目录,在项目文件夹里生成安装依赖文件里的环境: ...

  5. Android Studio3.3中Cannot resolve symbol ActivityTestRule

    最近在看<Android编程权威指南>,在Windows10下安装了Android Studio3.3,边看编练习书中的例子程序,看到第21章""音频播放与单元测试&q ...

  6. 我学习的自定义ASP.NET分页控件

    public class MyPagecontroll { public int TotalCount { get; set; }//数据的总条数 public int PageSize { get; ...

  7. bash命令根据历史记录补全

    用zsh比较方便的一个功能是在找之前用过的命令时可以先输入一部分命令作为过滤条件, 比如,想找 docker run 开头的历史命令,只需要键入 docker run 然后按 ↑ 进行选择. 但是在用 ...

  8. 深入理解java虚拟机JVM(下)

    深入理解java虚拟机JVM(下) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...

  9. androidstudio 2.3.3 jni过程汇总(2):2、使用so文件

    2.使用so文件 1.在java文件中System.loadLibrary加载包,并且引入native方法. 2.在app/src/main/下新建jniLibs文件夹,将so包带arm文件夹形式导入 ...

  10. java中String类的面试题大全含答案

    1.下面程序的运行结果是()(选择一项)String str1="hello";String str2=new String("hello");System.o ...