1.程序实现功能:int型的list容器中的所有元素复制到两个deque容器中。list为偶数,复制到一个deque中;若为奇数,复制到另一个deque中。
#include <iostream>
#include <list>
#include <deque>
#include <string>
using namespace std;
int main()
{
list<int> sli;
deque<int> evenDq,oddDq;
int sval;
//读入int对象并且存储在list对象中
cout<<"shurushuzi:" <<endl;
while (cin>>sval)
{
sli.push_back(sval);
}
//复制list对象的元素至适当的deque
for (list<int>::iterator iter=sli.begin();
iter!=sli.end();++iter)
{
if (*iter%2==0)
{
evenDq.push_back(*iter);
}
else
{
oddDq.push_back(*iter);
}
}
//输出deque对象以进行检测
deque<int>::iterator it;
it=evenDq.begin();
cout<<"even deque:"<<endl;
while (it!=evenDq.end())
{
cout<<*it<<" ";
++it;
}
cout<<endl;
it=oddDq.begin();
cout<<"odd deque:"<<endl;
while (it!=oddDq.end())
{
cout<<*it<<" ";
++it;
}
cout<<endl;
return 0;
}
2.判断vector<int>容器中包含的元素与list<int>容器的是否完全相同。
#include <iostream>
#include <vector>
#include <list>
using namespace std;
int main()
{
vector<int> ivec;
list<int> ili;
int ival;
// 读入int对象并且存储在vector对象中
cout<<"input number(vector):"<<endl;
while (cin>>ival)
{
ivec.push_back(ival);
}
cin.clear();//使用文件结束否作为输入vector元素的结束,所以,读入了所有的vector元素后,流cin处于无效状态,需要将cin重新置为有效,否则,将无法用cin继续读入list元素
//读入int对象并且存储在list对象中
cout<<"input number(list):"<<endl;
while (cin>>ival)
{
ili.push_back(ival);
}
//比较vector对象和list对象中的对应元素
vector<int>::iterator vit=ivec.begin();
list<int>::iterator lit=ili.begin();
while (vit!=ivec.end()&&lit!=ili.end())
{
if (*vit!=*lit)
break;
++vit;
++lit;
}
//输出比较结果
if (vit==ivec.end()&&lit==ili.end())
{
cout<<"they have the same number."<<endl;
}
else
{
cout<<"different number."<<endl;
}
return 0;
}