我有一个用户定义类型的向量(矩阵)向量my_type
,它是一个结构,包含整数 a、b 和 c。我希望定义一个函数,通过 b 的值查找该矩阵的元素并删除该元素。由于该函数不知道 c 的值,所以我定义了一个迭代器it
来首先找到这个元素,然后将其指针地址设置为迭代器it_found
,以便在 erase() 方法中使用它。但是,该程序在使用Program received signal EXC_BAD_ACCESS, Could not access memory,
时产生了错误it_found
。是什么导致了这个错误?
bool remove_V(int a, int b) {
typename std::vector<my_type>::iterator it;
typename std::vector<my_type>::iterator it_found;
for(it = V.at(a).begin(); it != V.at(a).end(); ++it){
if ((*it).b == 1) {
it_found == it;
std::cerr << (*it).b << "\n";
std::cerr << (*it_found).b << "\n";
}
}
}