#include
<
iostream
>
#include < vector >
#include < list >
#include < algorithm >
using namespace std;
/**/ /*
// The procedure to compare a vector and a list is find if they are equal.
bool compare(const vector<int> &vec,const list<int> &lst)
{
vector<int>::const_iterator iter=vec.begin();
list<int>::const_iterator it=lst.begin();
for(;iter!=vec.end(),it!=lst.end();++iter,++it)
{
if(*it!=*iter)
return 0; //if vec is not equal to lst
}
if(iter==vec.end()&&it!=lst.end()||iter!=vec.end()&&it==lst.end())
return 0; // not equal
return 1;
}
*/
int main()
... {
vector<int> ivec;
for(size_t i=0;i<10;++i)
...{
ivec.push_back(i);
}
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
...{
cout<<*iter<<" ";
}
cout<<endl;
list<int> ilist;
for(size_t i=0;i<15;++i)
...{
ilist.push_back(i);
}
ilist.resize(20);
for(list<int>::iterator iter=ilist.begin();iter!=ilist.end();++iter)
...{
cout<<*iter<<" ";
}
cout<<endl;
// one method
list<int> tmp(ivec.begin(),ivec.end());
if(tmp==ilist)
cout<<"ilist equal to ivec."<<endl;
else
cout<<"ilist is not equal to ivec."<<endl;
/**//*
// Another method
if(compare(ivec,ilist))
cout<<"Equal..."<<endl;
else
cout<<"Not equal..."<<endl;
*/
vector<int>::size_type maxsize=ivec.max_size(); // The max size ivec can contain
cout<<"max_size="<<maxsize<<endl;
vector<int>::size_type size=ivec.size(); // current size of ivec
cout<<"Size in ivec:"<<size<<endl;
int &val=ilist.front();
// list<int>::reference val=ilist.front();
val=90;
cout<<val<<endl;
cout<<ivec.at(5)<<endl;
ilist.pop_front();
ilist.pop_back();
list<int>::iterator lstit=find(ilist.begin(),ilist.end(),8); // find() function of algorithm
ilist.erase(lstit);
for(list<int>::iterator iter=ilist.begin();iter!=ilist.end();++iter)
...{
cout<<*iter<<" ";
}
cout<<endl;
return 0;
}
#include < vector >
#include < list >
#include < algorithm >
using namespace std;
/**/ /*
// The procedure to compare a vector and a list is find if they are equal.
bool compare(const vector<int> &vec,const list<int> &lst)
{
vector<int>::const_iterator iter=vec.begin();
list<int>::const_iterator it=lst.begin();
for(;iter!=vec.end(),it!=lst.end();++iter,++it)
{
if(*it!=*iter)
return 0; //if vec is not equal to lst
}
if(iter==vec.end()&&it!=lst.end()||iter!=vec.end()&&it==lst.end())
return 0; // not equal
return 1;
}
*/
int main()
... {
vector<int> ivec;
for(size_t i=0;i<10;++i)
...{
ivec.push_back(i);
}
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
...{
cout<<*iter<<" ";
}
cout<<endl;
list<int> ilist;
for(size_t i=0;i<15;++i)
...{
ilist.push_back(i);
}
ilist.resize(20);
for(list<int>::iterator iter=ilist.begin();iter!=ilist.end();++iter)
...{
cout<<*iter<<" ";
}
cout<<endl;
// one method
list<int> tmp(ivec.begin(),ivec.end());
if(tmp==ilist)
cout<<"ilist equal to ivec."<<endl;
else
cout<<"ilist is not equal to ivec."<<endl;
/**//*
// Another method
if(compare(ivec,ilist))
cout<<"Equal..."<<endl;
else
cout<<"Not equal..."<<endl;
*/
vector<int>::size_type maxsize=ivec.max_size(); // The max size ivec can contain
cout<<"max_size="<<maxsize<<endl;
vector<int>::size_type size=ivec.size(); // current size of ivec
cout<<"Size in ivec:"<<size<<endl;
int &val=ilist.front();
// list<int>::reference val=ilist.front();
val=90;
cout<<val<<endl;
cout<<ivec.at(5)<<endl;
ilist.pop_front();
ilist.pop_back();
list<int>::iterator lstit=find(ilist.begin(),ilist.end(),8); // find() function of algorithm
ilist.erase(lstit);
for(list<int>::iterator iter=ilist.begin();iter!=ilist.end();++iter)
...{
cout<<*iter<<" ";
}
cout<<endl;
return 0;
}
今晚的C++练习。
C++ primer English Fourth edition P322 Exercise 9.18