【发布时间】:2020-12-21 20:14:29
【问题描述】:
我有这个向量
std::vector<int> vec = {3,4,5,5};
我想检查向量中元素之间的相等性。在这种情况下,5 等于 5。我想将这些元素存储在另一个向量中,并将它们的位置(偏移量)保存在另一个变量中。
编辑://这不起作用
std::vector<int> vec = {3, 4, 5, 5};
std::vector<int> store;
std::vector<int> offset;
int len = vec.size();
for(int count = 0; count + 1 < len; count++)
{
if(vec.at(count) == vec.at(count + 1))
{
store.push_back(vec.at(count));
offset = count;
}
}
输出应该是:
store = {5,5};
offset.at(0) = 2;
offset.at(1) = 3;
【问题讨论】:
-
实际上是什么阻止了你
vec[2] == vec[3]?? -
我想比较一下 for 循环中的元素吧?因为我有很多向量而且我不知道它们的元素,所以这只是我真正想做的一个例子。 :)
-
@malicization 好吧,将
2和3替换为i和i + 1,并在这样做时注意(i + 1) < vec.size()。 -
@πάνταῥεῖ 我真的不明白你所描述的,因为我无法在 for 循环中将 i 与 i+1 进行比较
标签: c++ vector element equality