1、为list重载operator<<。
2、定义一个list对象 lst,元素值为{0,1,2,3,4,5,6,7,8,9},显示结果。
3、push_back一个5,显示结果,调用remove算法删除所有的5,显示结果。
4、调用reverse算法反转lst,显示结果。
5、对lst升序排列,显示结果。
6、定义一个deque对象d,使用lst初始化,显示结果。push_front一个
7、定义一个priority_queue,使用d初始化,push一个5。输出top、pop
8、定义一个queue对象,验证queue的基本操作。size、empty、push、pop、front、back等。
9、写一函数string DecToOther( unsigned int dec , unsigned int n),将十进制数转换为2到9的任意进制数,函数返回转换结果,dec为十进制数,n为2~9之一。并编写测试程序。
#include <iostream>
#include <list>
#include <iterator>
#include <deque>
#include <queue>
using namespace std;
//为list<int>重载operator<<。
ostream& operator<<(ostream& os, list<int>::iterator& it)
{
os << *it << "\t";
return os;
}
//写一函数string DecToOther( unsigned int dec , unsigned int n),将十进制数转换为2到9的任意进制数,函数返回转换结果,dec为十进制数,n为2~9之一。并编写测试程序。
void dectoother(unsigned int dec, unsigned int n_num)
{
int effect = 0;
int i = dec;
vector<int> q_dec;
while (i != 0)
{
effect = i % n_num;
if (i >= n_num)
i = i / n_num;
else
{
q_dec.push_back(effect);
break;
}
// cout << j << endl;
q_dec.push_back(effect);
}
int nSize = q_dec.size();
cout << dec << " 的 " << n_num << "进制" << " 为 : ";
for (int i = nSize - 1; i >= 0; --i)
{
int &nValue = q_dec[i];
cout << nValue;
}
cout << endl;
}
int main()
{
// 定义一个list对象 lst,元素值为{0,1,2,3,4,5,6,7,8,9},显示结果。
cout << "定义一个list对象 lst,元素值为{0,1,2,3,4,5,6,7,8,9},显示结果" << endl << endl;
list<int>lst;
int i = 0;
for (i = 0; i < 10 ; ++i)
{
lst.push_back(i);
}
list<int>::iterator ite;
for (ite = lst.begin(); ite != lst.end(); ++ite)
{
cout << *ite << "\t";
}
//push_back一个5,显示结果,调用remove算法删除所有的5,显示结果。
cout << "push_back一个5,显示结果,调用remove算法删除所有的5,显示结果" << endl << endl;
lst.push_back(5);
for (ite = lst.begin(); ite != lst.end(); ++ite)
{
cout << *ite << "\t";
}
cout << endl;
lst.remove(5);
for (ite = lst.begin(); ite != lst.end(); ++ite)
{
cout << *ite << "\t";
}
cout << endl;
//调用reverse算法反转lst,显示结果。
cout << "调用reverse算法反转lst,显示结果" << endl << endl;
list<int>::reverse_iterator rite = lst.rbegin();
for (; rite != lst.rend(); ++rite)
{
cout << *rite << "\t";
}
cout << endl;
//5对lst升序排列,显示结果。
cout << "对lst升序排列,显示结果" << endl << endl;
lst.sort();
for (ite = lst.begin(); ite != lst.end(); ++ite)
{
cout << *ite << "\t";
}
cout << endl;
//6定义一个deque对象d,使用lst初始化,显示结果。push_front一个-1,显示结果。
cout << "定义一个deque对象d,使用lst初始化,显示结果。push_front一个-1,显示结果" << endl << endl;
deque<int>d(lst.begin(), lst.end());
deque<int>::iterator it = d.begin();
for (; it != d.end(); ++it)
{
cout << *it << "\t";
}
cout << endl;
d.push_front(-1);
for (i = 0; i<d.size(); ++i)
{
cout << d.at(i) << "\t";
}
cout<<endl;
//7定义一个priority_queue,使用d初始化,push一个5。输出top、pop 这两步重复5次。
cout << "定义一个priority_queue,使用d初始化,push一个5。输出top、pop 这两步重复5次" << endl << endl;
priority_queue<int>pr(d.begin(), d.end());
pr.push(5);
for (i = 1; i <= 5; ++i)
{
cout << pr.top() << "\t";
pr.pop();
}
cout << endl;
//8定义一个queue对象,验证queue的基本操作。size、empty、push、pop、front、back等。
cout << "定义一个queue对象,验证queue的基本操作。size、empty、push、pop、front、back等" << endl << endl;
queue<int>q;
for (i = 1; i <= 10; ++i)
{
q.push(i);
}
cout << q.size() << "\t" << q.front() << "\t" << q.back() << "\t";
while (!q.empty())
{
for (i = 0; i<q.size(); ++i)
{
q.pop();
}
}
cout << endl << endl;
dectoother(2, 2);
dectoother(3, 2);
dectoother(4, 2);
dectoother(5, 2);
dectoother(16, 8);
dectoother(14, 3);
system("pause");
return 0;
}