练习9.15
1 #include <iostream> 2 #include <vector> 3 #include <list> 4 #include <iterator> 5 6 using namespace std; 7 8 int main() 9 { 10 vector<int> v1{ 1, 3, 5, 7, 9 }; 11 vector<int> v2{ 1,3,9 }; 12 vector<int> v3{ 1,3,5,7 }; 13 vector<int> v4{ 1,3,5,7,9 }; 14 if (v1 < v2) 15 cout << true << endl; 16 else 17 cout << false << endl; 18 system("pause"); 19 return 0; 20 }
练习9.16
1 #include <iostream> 2 #include <vector> 3 #include <list> 4 #include <iterator> 5 6 using namespace std; 7 8 int main() 9 { 10 vector<int> v1{ 1, 3, 5, 7, 9 }; 11 list<int> v2{ 1,3,9 }; 12 auto beg = v1.begin(); 13 auto last = v1.end(); 14 auto beg1 = v2.begin(); 15 auto last1 = v2.end(); 16 for (; beg != last && beg1 != last1; ++beg, ++beg1) 17 { 18 if (*beg > *beg1) 19 cout << "true" << endl; 20 else if (*beg == *beg1) 21 cout << "equal" << endl; 22 else 23 cout << "false" << endl; 24 } 25 system("pause"); 26 return 0; 27 }
网上答案利用拷贝初始化在进行同类型容器同类型元素的比较,个人觉得比我的好。
1 #include <iostream> 2 #include <vector> 3 #include <list> 4 using namespace std; 5 6 bool compare_vector(vector<int> vec1, vector<int> vec2, int a, int b)//输入两个参数,a,b表示访问的下标,利用了vector<int> 随机访问的特性 7 { 8 if(a <= vec1.size() && b <= vec2.size()) 9 { 10 if(vec1[a] == vec2[b]) 11 return true; 12 else 13 return false; 14 } 15 else 16 return false; 17 } 18 19 bool compare_list_vector(list<int> li, vector<int> vec, int a, int b) 20 { 21 vector<int> temp(li.begin(), li.end()); 22 //利用拷贝初始化,先将li的内容拷贝一个vector<int> temp,然后就和上面一样了。 23 if(a <= temp.size() && b <= vec.size()) 24 { 25 if(temp[a] == vec[b]) 26 return true; 27 else 28 return false; 29 } 30 else 31 return false; 32 } 33 34 int main() 35 { 36 vector<int> vec1 = {1,2,3,4,5,6}; 37 vector<int> vec2 = {1,2,3,4,5}; 38 list<int> li = {1,2,3,4,5,6}; 39 if(compare_list_vector(li,vec1,2,2)) 40 cout << "Equal!!!" << endl; 41 else 42 cout << "Not Equal..." << endl; 43 return 0; 44 }
练习9.17
c1和c2的容器类型必须相同,且容器中的元素类型也必须相同,还有容器中的元素类型必须要定义了相应的比较运算符
时间: 2024-10-14 04:53:50