2013-11-10 87 views
-1

我想寫一些代碼來逐個比較向量元素。所以說,我有三個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++中如何實現?我無法在谷歌上找到任何似乎能夠做到這一點的地方。也許我應該只將矢量製作成二維數組,並在cols上工作?

謝謝, 本。

+0

三向比較後需要做什麼?比較很簡單 - 'std :: vector's提供了'<'運算符的實現。 – dasblinkenlight

+0

基於您對語言中其他事物通常進行比較的知識進行猜測。 –

+2

你是什麼意思由「比較載體」?訂單是否重要?爲什麼一個簡單的for循環不能完成你所需要的? – rangu

回答

0

試試這個:

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; 
} 
0

托馬斯·馬修斯,您的代碼不編譯。這裏是工作示例:

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; 
} 

您可以改進這允許n個向量進行比較。