我有一个 c++ 程序,目前正在使用一个使用字符和数字作为键的向量。例如myvector['A'][1] = line.substr(0,7)
。但是我需要它来工作,myvector[1][3] = line.substr(0,7)
这样我就可以将两个键都用作数字。
在我当前的工作代码中,我有这个:
std::vector<std::vector<std::string> >myvector;
我认为只需将字符串更改为整数即可,但我收到“分段错误(核心转储)”或“无法在赋值中将 'std::basic_string' 转换为 'int'”错误。
std::vector<std::vector<int> >myvector;
我知道这个错误非常模糊,但我是 C++ 新手,所以我不知道如何找到任何其他特定的错误命令响应。我在网上浏览了很多示例,但遗憾的是无法编译其中的任何一个。任何帮助将不胜感激;感谢您的时间。
如果我以某种方式使用超出我范围的索引,这就是我输入索引的方式。
myvector[rn].resize(100);
std::ifstream fin(argv[3]);
std::string line;
int rn = 0;
int rln = 0;
while( getline(fin, line) ) {
rn = 0;
while(rn < line.length()/7){
myvector[rn][rln] = line.substr (rn*7,7);
rn++;
}
rln++;
}
当我输出“line.substr (rn*7,7)”时,结果完全符合预期,我只是无法将此变量设置到我的向量中。同样 rn 最终在 10+ 左右, rln 在 6 结束。