我想从一个C++向量中使用while循环和pop_back删除尾随零。如果矢量的最后一个元素是0,它应该弹出最后一个元素,直到它不再是0。如何从C++中删除尾随0向量
很难理解错误的含义,如果有人更聪明,请帮助解读这些错误,我会非常感激!
void Integer::unzero() {
while ((*this).bits_vector[((*this).bits_vector.size)] == 0) {
(*this).bits_vector.pop_back;
}
}
错误:
error C2679: binary '[': no operator found which takes a right-hand operand of type 'overloaded-function' (or there is no acceptable conversion)
error C3867: 'std::vector<bool,std::allocator<_Ty>>::pop_back': non-standard syntax; use '&' to create a pointer to member
在一个不相关的注释中:'(* this).bits_vector'与'this-> bits_vector'相同,在类的范围内它也与'bits_vector'相同。 –
您需要在'size()'和'pop_back()'使用'()'' –
更严重的问题,但与您遇到的错误无关,当您解决问题时,您将索引vector *边界*这是*未定义的行为*。矢量索引就像数组索引一样,基于零。这意味着矢量中的索引从零变为'size() - 1'。 –