gpt4 book ai didi

c++ - 访问 4d vector 时出现问题

转载 作者:行者123 更新时间:2023-11-28 01:04:16 36 4
gpt4 key购买 nike

我有一个 4d vector ,我正在尝试为其添加值。我没有收到任何编译器错误,但在运行它时,当程序到达我要向该 vector 添加值的行时,它会卡住。

我在这样的头文件中初始化 vector :

std::vector<std::vector<std::vector<std::vector<unsigned int> > > > _celllist;

数组的大小如下:

_celllist.resize(_vnx);
for(int i=0;i<_vnx;i++)
{
//y axis size
_celllist[i].resize(_vny);
for(int j=0;j<_vny;j++)
{
//z axis size
_celllist[i][j].resize(_vnz);
}
}

然后这一行导致程序崩溃:

_celllist[ix][iy][iz].push_back(i);

注意ix、iy、iz都是int,i是unsigned int。

谁能看出这里可能出了什么问题?谢谢

最佳答案

operator [] 不扩展或保证元素有效。它是 at() 的更快版本很少或没有错误检查:

暂时将您的代码转换为更安全的版本:

_celllist.at(ix).at(iy).at(iz).push_back(i);

如果您的索引关闭,此新代码将抛出 out_of_range 异常。

关于c++ - 访问 4d vector 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197811/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com