#include <iostream>
#include <string>
#include <vector>
#include <list>
using namespace std;
void assign_use()
{
char *ac[] = {"liu","yu","dong","xiao","fa","hua"};
int acNum = sizeof(ac)/sizeof(*ac);
list<char*> clist(ac, ac+acNum);
list<char*> ::iterator list_ter= clist.begin();
vector<string> svec;
svec.clear();
vector<string>::iterator ster = svec.begin();
svec.assign(clist.begin(), clist.end());
if (!svec.empty())
{
for (ster=svec.begin();ster!=svec.end(); ster++)
{
cout<< *ster<<endl;
}
}
else
{
cout<<"svce is empty;"<<endl;
while (list_ter!=clist.end())
{
cout<<*list_ter++<<endl;
}
}
}
void back_use()
{
vector<int> svec;
vector<int> ::iterator iter1;
vector<int> ::iterator iter2;
for (int i=0;i<10;i++)
{
svec.push_back(i);
}
iter1 = svec.begin(); //返回的是迭代器开始位置
iter2 = svec.end()-1; //返回迭代器最后的一个元素的下一个位置,所以要减去一
cout<<svec.front()<<endl; //返回的是该元素的引用
cout<<svec.back()<<endl; //返回的是该元素的引用
cout<<"iter1= "<<*iter1<<endl;
cout<<"iter2= "<<*iter2<<endl;
}
int main(void)
{
/******************************************************
说明:assign()的用法;
作用:以迭代器start和end指示的范围为list赋值;
******************************************************/
assign_use();
back_use();
system("pause");
return 0;
}
#include <string>
#include <vector>
#include <list>
using namespace std;
void assign_use()
{
char *ac[] = {"liu","yu","dong","xiao","fa","hua"};
int acNum = sizeof(ac)/sizeof(*ac);
list<char*> clist(ac, ac+acNum);
list<char*> ::iterator list_ter= clist.begin();
vector<string> svec;
svec.clear();
vector<string>::iterator ster = svec.begin();
svec.assign(clist.begin(), clist.end());
if (!svec.empty())
{
for (ster=svec.begin();ster!=svec.end(); ster++)
{
cout<< *ster<<endl;
}
}
else
{
cout<<"svce is empty;"<<endl;
while (list_ter!=clist.end())
{
cout<<*list_ter++<<endl;
}
}
}
void back_use()
{
vector<int> svec;
vector<int> ::iterator iter1;
vector<int> ::iterator iter2;
for (int i=0;i<10;i++)
{
svec.push_back(i);
}
iter1 = svec.begin(); //返回的是迭代器开始位置
iter2 = svec.end()-1; //返回迭代器最后的一个元素的下一个位置,所以要减去一
cout<<svec.front()<<endl; //返回的是该元素的引用
cout<<svec.back()<<endl; //返回的是该元素的引用
cout<<"iter1= "<<*iter1<<endl;
cout<<"iter2= "<<*iter2<<endl;
}
int main(void)
{
/******************************************************
说明:assign()的用法;
作用:以迭代器start和end指示的范围为list赋值;
******************************************************/
assign_use();
back_use();
system("pause");
return 0;
}