2018年02月10日
《その285》 ベクトル vector<> の基礎事項(5)
ベクトル vector<> の基礎事項(5)
等価演算子と関係演算子
今回の内容は、
等価演算子「 == 」「 != 」と、関係演算子「 < 」「 > 」「 <= 」「 >= 」が、
ベクトルオブジェクトを比較するときの判断の基準についてです。
等価演算子については、
オブジェクト a … { 10, 12, 18 }
オブジェクト b … { 10, 12, 18 }
オブジェクト c … { 10, 11, 18 , 10 }
であれば、
a == b
a != c
は、明らかです。
次に、関係演算子についてです。
上記の a と c を比較すると、
a > c
となります。
最初に、先頭要素が比較されますが、これは共に 10 で同じです。
a[0], c[0] は共に 10
次いで、2番目の要素が比較されます。
a[1] は 12, c[1] は 11
この大小関係だけから、オブジェクト a が大きいという判断がなされます。
このように、それぞれのオブジェクトの要素を先頭から順に比較して行き、値が一致しない場合があれば、その要素の大小関係をチェックします。そして、その大小関係が、そのままベクトルオブジェクトの大小関係ということになります。
オブジェクト d … { 5, 5, 7, 8, 7, 9, 8, 6 }
オブジェクト e … { 5, 5, 8, 0, 1 }
であれば、
d < e
となります。要素の数や、要素の全体の様子は関係ありません。
オブジェクト d, e の要素が初めて一致しないのは、先頭から3番目の、
d[2], e[2]
のときです。この2つの要素の比較で、d, e の大小が決まります。
以下はプログラムです。
#include <vector>
#include <iostream>
using namespace std;
int main() {
int x[] = { 10, 12, 18 };
int y[] = { 10, 12, 18 };
int z[] = { 10, 11, 18 , 10 };
vector<int> a(x, x + sizeof(x) / sizeof(x[0]));
vector<int> b(y, y + sizeof(y) / sizeof(y[0]));
vector<int> c(z, z + sizeof(z) / sizeof(z[0]));
cout << "a[] … { ";
for (vector<int>::size_type i = 0; i < a.size(); i++)
cout << a[i] << ' ';
cout << "}\n";
cout << "b[] … { ";
for (vector<int>::size_type i = 0; i < b.size(); i++)
cout << b[i] << ' ';
cout << "}\n";
cout << "c[] … { ";
for (vector<int>::size_type i = 0; i < c.size(); i++)
cout << c[i] << ' ';
cout << "}\n";
cout << boolalpha;
cout << "a == b … " << (a == b) << '\n';
cout << "a != b … " << (a != b) << '\n';
cout << "a == c … " << (a == c) << '\n';
cout << "a != c … " << (a != c) << '\n';
cout << "a < c … " << (a < c) << '\n';
cout << "a > c … " << (a > c) << '\n';
cout << "a <= c … " << (a <= c) << '\n';
cout << "a >= c … " << (a >= c) << '\n';
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7301636
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック