我知道我可以使用单个数组来执行此操作,但是如果我确实使用单个数组,将会使我感到更难为继。例如,我有一个二维数组:
[["E", "A"], ["R", "B"], ["C", "D"]]
如何将每个元素与其余元素进行比较?例如。将“ E”与“ A”,“ R”,“ B”等进行比较。2D数组将始终由1×2子数组组成。请任何人能帮助我,谢谢。
答案 0 :(得分:0)
#include<iostream>
int main(){
int arr[2][2] = {
{1,2},
{3,4},
};
int elem;
for (int i = 0;i < 2;i++){
for(int j = 0;j < 2;j++){
//Now you're on the first element
// I have used a size of 2, but you can use whatever size you want
elem = arr[i][j];
for (int a = 0;a < 2;a++){
for(int b = 0;b < 2;b++){
if (arr[a][b] == elem) continue;
//Do whatever you want now;
std::cout << "Comparing " << elem << " with " << arr[a][b] << "\n";
}
}
}
}
return 1;
}
这是输出
Comparing 1 with 2
Comparing 1 with 3
Comparing 1 with 4
Comparing 2 with 1
Comparing 2 with 3
Comparing 2 with 4
Comparing 3 with 1
Comparing 3 with 2
Comparing 3 with 4
Comparing 4 with 1
Comparing 4 with 2
Comparing 4 with 3
答案 1 :(得分:0)
#include <array> // std::array
#include <utility> // std::pair
using namespace std;
int main()
{
// build objects
pair<char, char> element1('E', 'A');
pair<char, char> element2('R', 'B');
pair<char, char> element3('C', 'D');
array<pair<char, char>, 3> my_array = {element1, element2, element3};
// perform comparisons
for (int i = 0; int i != my_array.size(); ++i) {
yourCompareFunction(my_array[i].first, my_array[i].second);
for (int j = i + 1; int j != my_array.size(); ++j) {
yourCompareFunction(my_array[i].first, my_array[j].first);
yourCompareFunction(my_array[i].first, my_array[j].second);
yourCompareFunction(my_array[i].second, my_array[j].first);
yourCompareFunction(my_array[i].second, my_array[j].second);
};
};
return 0;
}