在将迭代器向量评估为字符串列表时出现分段错误

时间:2014-08-27 10:59:05

标签: c++ vector iterator

尝试将迭代器向量中的值访问到字符串列表时出错。这是复杂代码的一部分,因此我将尝试仅在此处介绍相关部分。 我搜索过与我类似的问题,但我无法弄清楚问题是什么。

这些是我变量的声明。

/// 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));

是否有其他方法可以访问迭代器指向的内容? 如果字符串为空,是否有问题?

希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

似乎某些列表为空并且将解除引用运算符应用于begin()会导致分段错误。