C++ array元素的比較

2020-07-16 10:04:28

可以用任何比較運算子比較兩個陣列容器,只要它們有相同的大小,儲存的是相同型別的元素,而且這種型別的元素還要支援比較運算子。範例如下:

std::array<double,4> these {1.0, 2.0, 3.0, 4.0};
std::array<double,4> those {1.0, 2.0, 3.0, 4.0};
std::array<double,4> them {1.0, 3.0, 3.0, 2.0};

if (these == those) std::cout << "these and those are equal." << std::endl;
if (those != them) std::cout << "those and them are not equal."<< std::endl;
if (those < them) std::cout << "those are less than them."<< std::endl;
if (them > those) std::cout << "them are greater than those." << std::endl;
容器被逐元素地比較。對 ==,如果兩個陣列對應的元素都相等,會返回 true。對於 !=,兩個陣列中只要有一個元素不相等,就會返回 true。這也是字典中單詞排序的根本方式,兩個單詞中相關聯字母的不同決定了單詞的順序。這個程式碼片段中所有的比較運算都是 true。所以當它們執行時,會輸出 4 條訊息。

不像標準陣列,只要它們存放的是相同型別、相同個數的元素,就可以將一個陣列容器賦給另一個。例如:
them = those;
賦值運算子左邊的陣列容器的元素,將會被賦值運算子心邊的陣列容器的元素覆蓋。