练习9.14:编写程序,将一个list中的char* 指针(指向C风格字符串)元素赋值给一个vector中的string。
解答:
#include<iostream>
#include<vector>
#include<list>
#include<string>
using std::list;using std::vector;using std::cout;using std::endl;using std::string;
int main()
{
list<const char*> clist{"hello","word","hi"};
vector<string> svec(clist.cbegin(),clist.cend());
for(const auto &s:svec)
cout<<s<<" ";
cout<<endl;
return 0;
}
练习9.15:编写程序,判定两个vector<int>是否相等。
解答:
#include<iostream>
#include<vector>
using std::vector;using std::cout;using std::endl;
int main()
{
vector<int> ivec1{1,2,3,4};
vector<int> ivec2{1,2,3,4};
vector<int> ivec3{4,3,2,1};
cout<<(ivec1==ivec2?"true":"false")<<endl;
cout<<(ivec1==ivec3?"true":"false")<<endl;
return 0;
}
练习9.16:重写上一题的程序,比较一个list<int>中的元素和一个vector<int>中的元素。
解答:
#include<iostream>
#include<vector>
#include<list>
using std::vector;using std::cout;using std::endl;using std::list;
int main()
{
list<int> ilist{1,2,3,4};
vector<int> ivec2{1,2,3,4};
vector<int> ivec3{4,3,2,1};
cout<<((vector<int>(ilist.begin(),ilist.end()))==ivec2?"true":"false")<<endl;
cout<<((vector<int>(ilist.begin(),ilist.end()))==ivec3?"true":"false")<<endl;
return 0;
}
练习9.17:假定c1和c2是两个容器,下面的比较操作会有何限制(如果有的话)?
if(c1<c2)
解答:
c1和c2必须是相同类型的容器,且必须保存相同类型的元素。