C++ 比较不同的载体
我正在尝试编写一些代码来逐元素比较向量。假设我有三个int向量: v1=1,2,3,4,5,6,7,8,9,10 v2=1,2,3,4,5,6,7,8,9,10 v3=1,2,3,4,5,6,7,8,9,10 我想逐元素比较这三个元素——比较v1[0],v2[0],v3[0]。然后是v1[1]、v2[1]、v3[1]等等。C++中如何可能?我在谷歌上找不到任何地方能做到这一点。也许我应该把向量做成一个2d数组,然后处理COL 谢谢, 本 试试这个:C++ 比较不同的载体,c++,arrays,vector,comparison,C++,Arrays,Vector,Comparison,我正在尝试编写一些代码来逐元素比较向量。假设我有三个int向量: v1=1,2,3,4,5,6,7,8,9,10 v2=1,2,3,4,5,6,7,8,9,10 v3=1,2,3,4,5,6,7,8,9,10 我想逐元素比较这三个元素——比较v1[0],v2[0],v3[0]。然后是v1[1]、v2[1]、v3[1]等等。C++中如何可能?我在谷歌上找不到任何地方能做到这一点。也许我应该把向量做成一个2d数组,然后处理COL 谢谢, 本 试试这个: bool vectors_are_equal
bool vectors_are_equal = false;
const unsigned int size = v1.size();
for (unsigned int i = 0; i < size; ++i)
{
if ((v1[i] == v2[i]) && (v2[i] == v3[i]))
{
continue;
}
else
{
break;
}
}
if (i >= size)
{
vectors_are_equal == true;
}
bool向量等于=false;
常量unsigned int size=v1.size();
for(无符号整数i=0;i=大小)
{
向量_等于==真;
}
托马斯·马修斯,您的代码无法编译。下面是一个工作示例:
bool areVectorsEqual(const std::vector<int>& v1, const std::vector<int>& v2, const std::vector<int>& v3) {
if (v1.size() != v2.size() || v2.size() != v3.size()) {
return false;
}
for (int i = 0; i < v1.size(); i++) {
if (v1[i] != v2[i] || v2[i] != v3[i]) {
return false;
}
}
return true;
}
bool areVectorsEqual(const std::vector&v1,const std::vector&v2,const std::vector&v3){
如果(v1.size()!=v2.size()| v2.size()!=v3.size()){
返回false;
}
对于(int i=0;i
您可以对此进行改进,允许比较n个向量。三方比较后需要做什么?比较很简单-
std::vector
s提供了的一个实现,根据您对语言中其他事物通常如何比较的知识进行猜测。您所说的“比较向量”是什么意思?秩序重要吗?为什么一个简单的for循环不能满足您的需要呢?您基本上回答了自己的问题。逐元素比较,首先是元素0,然后是元素1,等等。我的问题是我不知道要提前比较多少个向量,但我想知道每个位置,所有向量中的值是否相同。