我想使用枚举作为索引来访问二维 vector 。然而,这给了我一个 EXC_BAD_ACCESS
错误。我按如下方式创建了枚举 -
enum ROW
{
R0 = 0,
R1 = 1,
};
ROW row;
enum COLUMN
{
C1 = 0,
C2 = 1,
};
COLUMN col;
二维 vector 是这样创建的 -
std::vector<std::vector<double>> alpha{ { 1.46774172175387E-005, 2.000064981},
{ 3.46774172175387E-005, 4.59485786231327E-005} };
当我尝试访问这样的元素时出现错误 -
p = alpha[row][col];
有人可以指出我在这里做错了什么吗?
我在 Xcode 6.1、OS X Yosemite 上工作。
最佳答案
您似乎还没有初始化row
或col
。如果是,则 p = alpha[row][col];
的行为将未定义。
请注意,除了在 enum
中明确指定的值之外,还可以将其他整数值分配给 row
和 col
。因此,您的方法不一定会阻止数组边界之外的访问尝试。
C++11 引入了具有更严格规则的枚举器类。
关于c++ - 使用枚举作为索引访问二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29667885/