练习9.15:编写程序,判定两个vector<int>是否相等?
大小评判标准:逐个比较,越长越大。
1.每个容器都支持相等运算符(==和!=);
2.除了无序关联容器外所有的容器都支持关系运算符(>、>=、<、<=)。
3.相等运算符和关系运算符两边运算对象要保证:容器类型一样、数据类型一样。
vector<int> s1 = { 1, 2, 3, 4, 5 };
vector<int> s2 = { 6, 7, 8 };
if (s2 > s1)
cout << "true" << endl;
vector<Sales_data> storeA, storeB;
if(storeA < storeB)//错误:Sales_data没有<运算符
4.由上面代码可知,能进行关系运算符的前提是数据类型支持相关的操作。
练习9.16:重写上一题的程序,比较一个list<int>中的元素和一个vector<int>中的元素。
练习9.17:假定c1和c2是两个容器,下面的比较操作有何限制(如果有的话)?
if(c1 < c2)
答:
1.两个容器的类型和数据类型必须一致。
2.数据类型必须支持比较操作。
3.无关容器本身就不支持关系运算。
//forward_list 没有size()函数
list<int> s1 = { 0, 1, 2, 3, 4, 5 };
forward_list<int> s2 = { 0, 1, 2, 3, 4, 5 };
cout << s1.size() << endl; //正确
cout << s2.size() << endl; //错误