c++动态内存分配一维数组
c++里建立数组的时候由于数组大小不确定所以打算用动态内存用new/delete时候定一的初始值是什么意思啊另外我无法确定数组大小应该怎么写这个数组的动态内存呀...
c++里建立数组的时候 由于数组大小不确定 所以打算用动态内存 用new/delete时候定一的初始值是什么意思啊 另外 我无法确定数组大小 应该怎么写这个数组的动态内存呀
展开
4个回答
展开全部
之所以要用到动态内存分配,是你一开始不知道要分配多大的内存空间,但最后要分配的时候一定是知道要分配多大的空间的,否则如果到最后要用到这个存储空间也就是你这里指的数组的时候,你都不知道要有多大的空间,那么动态分配内存也就没什么意义,还不如一开始就定一个足够大的数组。
这里举一个动态内存分配的简单应用例子,比如你是个酒店管理员,负责对接旅行团的入住管理,旅行团的人数都不一样,但最后真的有旅行团来的时候就会报出人数,这时候你就知道要分配多少个房间给他们,然后你要把这个旅行团的房间号记下来,这时候就可以用动态分配了,简单示例程序如下:
/*
*功能说明,录入房间号,输入第几个人(简单点模拟人名),查询房间号
*/
#include <iostream>
#include <stdlib.h>
using namespace std;
#define MAX_HUMAN_COUNT 100 //最大可入住人数
int main()
{
int human_num = 0;//实际入住人数
int room_num = 0;//房间号
/*键盘获取人数*/
cout << "please input the num of people:";
cin >> human_num;
/*人数超乎范围退出*/
if(human_num <= 0 || human_num > MAX_HUMAN_COUNT)
{
cout << "invalid num !" << endl;
exit(0);
}
else
{
/*根据人数动态分配房间数,存储房间号*/
int *room = new int[human_num];
for(int i=0;i<human_num;i++)
{
cout << "please input the room num:" ;
cin >> room[i];
}
/*输入第几个人,查询房间号*/
cout << "you can get the room num by input the index:1~" << human_num << ":";
cin >> room_num;
cout << "the room num of index " << room_num << " is " << room[human_num-1] << endl;
delete[] room;//最后注意一定要回收动态分配的内存
}
return 0;
}
展开全部
首先引入头文件include<vector>
然后创建动态数组 vector<int> vec ;
写入数据 vec.push_back(....)
拿到数据 可以通过循环编辑 vec[i]
也可以每次拿到头第一个 vec.front()
欢迎追问,望采纳
然后创建动态数组 vector<int> vec ;
写入数据 vec.push_back(....)
拿到数据 可以通过循环编辑 vec[i]
也可以每次拿到头第一个 vec.front()
欢迎追问,望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
晕,如果什么都搞不定就学一学用vector
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询