| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3791 人关注过本帖
标题:C++中变量、数组和vector对象初始化的问题
取消只看楼主 加入收藏
wang20080441
Rank: 1
等 级:新手上路
帖 子:4
专家分:8
注 册:2018-10-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
C++中变量、数组和vector对象初始化的问题
最近偶然发现,vector与数组的初始化存在区别,对其原理不解,希望高人指点。
环境为VS 2013。
代码一如下:
    int height = 3;
    int width = 4;
    int area = height * width;
    float cell = 1.0 / float(area);

    int map[height][width];
编译结果:
error C2087: “map”: 缺少下标
error C2133: “map”: 未知的大小

代码二如下:
    int height = 3;
    int width = 4;
    int area = height * width;
    float cell = 1.0 / float(area);

    vector< vector <float> > newGrid(height, vector<float>(width, cell));
编译结果:
    成功

    那么问题是,为什么数组不能以已经初始化的变量作为下标,而vector却能以之作为初始化参数呢?难道数组内存的分配和vector对象的内存分配不是在同一时刻进行的吗?如果不是,那么分别是在什么时候呢。
    此外,注意到变量area的初始化同样直接使用了之前的变量。那是否意味着数组内存分配是在所有变量初始化之前?
    希望有经验的同学指点一二。




搜索更多相关主题的帖子: 变量 数组 vector 初始化 int 
2018-10-30 11:05
wang20080441
Rank: 1
等 级:新手上路
帖 子:4
专家分:8
注 册:2018-10-30
收藏
得分:0 
回复 2楼 yuccn
恩,我猜是这样的,所以我比较好奇的是,vector <>的空间分配不是在变量定义的时候同时进行的,是么?我以为vector<>的分配是和数组分配同时做的
2018-11-01 22:32
快速回复:C++中变量、数组和vector对象初始化的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029953 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved