您的位置:首页 > 编程语言 > C语言/C++

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

2014-08-24 15:53 253 查看

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: