我试过这段代码
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
class Tex
{
public:
int ii;
};
vector <Tex> tex;
vector <Tex>::iterator itexx;
int main()
{
Tex texx;
texx.ii = 9;
tex.push_back(texx);
cout << itexx->ii;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,编译器给我分段错误或者更确切地说是"程序收到的SIGSEGV分段错误".
我不知道这个错误的意思.我的代码出了什么问题?
itexx是一个无效的迭代器.你需要通过为它指定一个有效的迭代器来使它"指向"某个东西.例如,
itexx = tex.begin();
if (itexx != tex.end())
std::cout << itexx->ii;
Run Code Online (Sandbox Code Playgroud)