VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 813|回复: 5

使用 vector时 总是 提示 :无法计算表达式 的值???

[复制链接]

1

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-3 12:30:01 | 显示全部楼层 |阅读模式
我在 头文件中声明一个容器 类型
typedef std::vector<int>        CityRouterDef;
然后定义一 个类包含这个容器
class Population
{
......
        CityRouterDef PopIndex;
......
}
请问:
1 在类population的构造函数中 需要对popIndex初始化吗?
如果需要怎么样写呢?
2 我在后面定义了population数组,当其中有population为空的时候,比如population[0]中的popIndex为空时,我监视时发现,popIndex的数据提示:无法计算表达式的值,我想是不是popIndex没有初始化呢??可是,那些非空的population中的popIndex又有值啊??百思不得其解,请大家指点一下!!
回复

使用道具 举报

0

主题

37

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-1-3 12:33:01 | 显示全部楼层
CityRouterDef是一个vector<int>型的变量,怎么能当类型来用呢?
回复

使用道具 举报

0

主题

37

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-1-3 12:39:01 | 显示全部楼层
啊 不好意思看错了
回复

使用道具 举报

0

主题

41

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-1-3 12:45:01 | 显示全部楼层
可以初始化
Population::Population():PopIndex(32)大小初始化
Population::Population():PopIndex(iterator1,iterator2)//迭代器


没有数据的时候,你当然不能使用population[0]了
回复

使用道具 举报

0

主题

57

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-3 13:45:01 | 显示全部楼层
一般来说只需要对基本类型的数据进行初始化,一般包装好的对象都有自己的初始化过程
回复

使用道具 举报

1

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-1-3 17:51:02 | 显示全部楼层
population[0]是对象数组元素,popIndex是对象元素的一个成员,按道理说,vector是系统构造,调用默认的初始化函数的,即构造成空的容器,但是不应该有无法计算表达式的值这样的错误啊 ?我知道不能调用不存在的数据,但是,空的容器有错吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表