如何查看矢量中的所有元素是否相同?

how to see if all elements in vector are the same?

本文关键字:是否 元素 何查看      更新时间:2023-10-16

我有一个vectorsvector

如何检查其中一列中的所有元素是否相同?

我试图用这个嵌套的 for 循环来检查它,但我遇到了一个超出范围的错误

void move_bee(vector< vector<insect> > &insects_on_board){
for(int i = 0; i < 10; i++){
for(int j = 0; j < insects_on_board.at(i).size(); j++){
for(int k = insects_on_board.at(i).size(); k > 0; k--){
if(insects_on_board.at(i).at(j) == "B" &&
insects_on_board.at(i).at(k) == "B"){
insects_on_board.at(i-1).push_back(bee());
insects_on_board.at(i).erase(insects_on_board.at(i).begin() + j);
}
}
}
}
}

我读过:

if (equal(myVector.begin() + 1, myVector.end(), myVector.begin()) )

方法,但它不会为我编译,我假设它是因为它是vectorsvector.

k的初始值不在末尾:使用

for(auto k=v.size(); k--;)

向后循环。

at(i-1)的使用也一定是错误的,因为i从 0 开始。

除非你的向量被排序,否则只检查两个元素并不能告诉你它们是否都相等。

最后,即使你不能使用 range-for(因为使用i-1...+j这样的索引(,也要绑定对你正在处理的元素的引用,至少在外部级别。 可读性显著提高。

相关文章: