尝试将迭代器向量中的值访问到字符串列表时出错。这是复杂代码的一部分,因此我将尝试仅在此处介绍相关部分。 我搜索过与我类似的问题,但我无法弄清楚问题是什么。
这些是我变量的声明。
/// Vector of lists of files
std::vector <std::list <std::string> > filelist;
/// Vector with iterator for the list of files
std::vector <std::list <std::string>::iterator > iterator;
这是迭代器向量的初始化方式(包含此函数的函数在i = 0时调用2次,对于不同的文件目录调用i = 1):
iterator.push_back(filelist.at(i).begin());
这是我尝试访问迭代器指向的字符串值并发生seg错误的地方:
std::string path=*(iterator.at(i));
是否有其他方法可以访问迭代器指向的内容? 如果字符串为空,是否有问题?
希望你能帮助我。
答案 0 :(得分:0)
似乎某些列表为空并且将解除引用运算符应用于begin()会导致分段错误。