练习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;
}