C++ 是否插入列表?

C++ 是否插入列表?,c++,segmentation-fault,C++,Segmentation Fault,我觉得我可能忽略了一些非常简单的东西,但我已经编写了一些代码,只是为了测试列表上的插入/拼接,我在编写的代码中遇到了seg错误。有人能告诉我在哪里/为什么吗 #include <iostream> #include <vector> #include <list> using namespace std; int main(){ vector <int> iVec; list <int> iList; vector<i

我觉得我可能忽略了一些非常简单的东西,但我已经编写了一些代码,只是为了测试列表上的插入/拼接,我在编写的代码中遇到了seg错误。有人能告诉我在哪里/为什么吗

#include <iostream>    
#include <vector>
#include <list>

using namespace std;
int main(){

vector <int> iVec;
list <int> iList;
vector<int>::iterator vIt;
list <int>::iterator lIt;

for(int i = 0; i < 10; i++){
    iVec.push_back(i*10);
    iList.push_back(i*10);
}//0, 10, 20, 30....90


//0 <-- current pos of iterator lIt

lIt++;  
lIt++; 

//0, 10, 20

iList.insert(lIt, 3);



//Vector output loop
for(vIt = iVec.begin(); vIt!= iVec.end(); vIt++){

}



cout << endl << endl <<"List Contents: " <<endl << endl;
//List output loop
for(lIt = iList.begin(); lIt != iList.end(); lIt++){
    cout << *lIt << endl;
}


return 0;
#包括
#包括
#包括
使用名称空间std;
int main(){
向量iVec;
列表iList;
向量::迭代器vIt;
列表::迭代器;
对于(int i=0;i<10;i++){
iVec.推回(i*10);
iList.推回(i*10);
}//0, 10, 20, 30....90

//0
lIt
未正确初始化-它是一个迭代器-但当前未指向任何内容-您需要执行以下操作:

lIt = iList.begin(); // initialize it to begin, now we can iterate!
你还没有初始化
lIt
迭代器,但你正在增加它。这就是问题所在

初始化它,然后递增:

lIt = iList.begin();
lIt++;  
lIt++; 

评论总是撒谎

//0 <-- current pos of iterator lIt

//0您尚未初始化迭代器。
list::iterator lIt=iList.begin()
@spraff,如果你把它作为答案,我们可以投票!你试过通过调试器运行你的代码吗?你看到了什么?你为什么不缩进你的代码?你使用调试器了吗?Valgrind?哦,天哪,我是个白痴!!到目前为止,我一直在使用循环中的迭代器来进行输出,所以我甚至认为我没有初始化它!!谢谢!在函数顶部声明变量是一个古老的C习惯用法——C++的最佳实践是只在需要的地方创建变量,在最窄的可能范围内,总是初始化,如果可能的话,const。
//0 <-- current pos of iterator lIt