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

C++Primer第五版 9.2.7节练习

2015-09-17 07:32 281 查看
练习9.15:编写程序,判定两个
vector<int>
是否相等。


答:见练习9.15.cpp

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


答: 见练习9.16.cpp

练习9.17:假定c1和c2是两个容器,下面的比较操作有何限制(如果有的话)?

if (c1 < c2)

答:c1和c2的容器中的元素类型必须要支持<的比较操作,否则,这个语句错误。

练习9.15

/*
*练习9.15 
*日期:2015/7/28
*问题描述:练习9.15:编写程序,判定两个vector<int>是否相等。
*功能;比较 
*作者:Nick Feng 
*邮箱:nickgreen23@163.com 
*/

#include <iostream>
#include <vector>

using namespace std;

void compare_vector(vector<int> vec1, vector<int> vec2)
{
   if(vec1.size() == vec2.size())
   {
     int flag = 0;
     for(auto i = 0; i != vec1.size(); ++i)
     {
        if(vec1[i] == vec2[i])
            flag = 1;
        else
            flag = 0;   
     }
     if(flag == 1)
        cout << "Equal!!!" << endl;
     else
        cout << "Not Equal..." << endl;
   }
   else
        cout << "Not Equal..." << endl; 
} 

int main()
{
    vector<int> vec1 = {1,2,3,4,5,6,7,8};
    vector<int> vec2 = {1,2,3,4};
    vector<int> vec3 = {1,2,3,4};
    cout << "compare vec1 and vec2: "; 
    compare_vector(vec1, vec2);

    cout << "compare vec2 and vec3: ";
    compare_vector(vec2, vec3);
    return 0;
}


练习9.16

/*
*练习9.16 
*日期:2015/7/28 
*问题描述:
*功能;
*作者:Nick Feng 
*邮箱:nickgreen23@163.com 
*/

#include <iostream>
#include <vector>
#include <list>
using namespace std;

bool compare_vector(vector<int> vec1, vector<int> vec2, int a, int b)//输入两个参数,a,b表示访问的下标,利用了vector<int> 随机访问的特性 
{
   if(a <= vec1.size() && b <= vec2.size())
   {
      if(vec1[a] == vec2[b])
         return true;
      else 
         return false;
   }    
   else 
        return false;
} 

bool compare_list_vector(list<int> li, vector<int> vec, int a, int b)
{
    vector<int> temp(li.begin(), li.end()); 
    //利用拷贝初始化,先将li的内容拷贝一个vector<int> temp,然后就和上面一样了。 
    if(a <= temp.size() && b <= vec.size())
    {
        if(temp[a] == vec[b])
            return true;
        else 
            return false;
    }
    else
        return false;
 } 

int main()
{
    vector<int> vec1 = {1,2,3,4,5,6};
    vector<int> vec2 = {1,2,3,4,5};
    list<int> li = {1,2,3,4,5,6};
    if(compare_list_vector(li,vec1,2,2))
        cout << "Equal!!!" << endl;
    else
        cout << "Not Equal..." << endl;
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: