C++ primer 第五版 中文版 9.2.7 节练习

来源:互联网 发布:java发送socket请求 编辑:程序博客网 时间:2024/06/08 07:18


C++ primer 第五版 中文版 9.2.7 节练习


练习 9.15:编写程序,判定两个vector<int>是否相等。

答:

#include <iostream>#include <vector>using std::cout;using std::endl;using std::vector;int main(){vector<int> vect1 = { 1, 1, 2, 3, 5, 8 };vector<int> vect2 = { 1, 1, 2, 3, 5, 8, 13 };cout << (vect1 > vect2 ? "vect1大于vect2" : (vect1 == vect2 ? "vect1等于vect2" : "vect1小于vect2")) << endl;return 0;}


练习 9.16:重写上一题的程序,比较一个list<int>中元素和一个veotr<int>中的元素。

答:本来这个题我想着是用一个循环来依次比较元素大小的,但后来突然发现,为什么不把 list<int> 的值初始化或者赋值给一个vector<int> 然后进行比较呢??

于是有了下面取巧的答案……

#include <iostream>#include <list>#include <vector>using std::cout;using std::endl;using std::list;using std::vector;//比较一个list<int>中元素和一个veotr<int>中的元素,list大于vector返回1,小于返回-1,等于返回0。int cmp_list_vector(const list<int> &ilist, const vector<int> &ivect){vector<int> tmpvect(ilist.begin(), ilist.end()); // 把list<int> 值初始化给vector<int>if (tmpvect > ivect){return 1;}else if (tmpvect == ivect){return 0;}else{return -1;}}int main(){list<int> mylist = { 1, 1, 2, 3, 5 ,8,13};vector<int> myvector = { 1, 1, 2, 3, 5 };cout << "mylist容器的元素为:";for (auto a : mylist)cout << a << " ";cout << endl;cout << "myvector容器的元素为:";for (auto b : myvector)cout << b << " ";cout << endl;cout << "比较结果为:";int flag = cmp_list_vector(mylist, myvector);cout << (flag == 1 ? "mylist大于myvector" : (flag == 0 ? "mylist等于myvector" : "mylist小于myvector")) << endl;return 0;}



0 0
原创粉丝点击