#include <iostream>
#include <vector>
#include <conio.h>
#include <numeric>
#include <string>
#include <list>
using namespace std;
int main()
{
vector<int> vec;
for(int i=0;i<10;i++)
{
vec.push_back(1);
}
vector<int>::iterator it = vec.begin();
for( ; it != vec.end();it ++)
{
cout<<*it<<endl;
}
// accumulate 初至值为100 再加上迭代器范围内的数(end()不算哦)
int sum = accumulate(vec.begin(),vec.end(), 100);
cout<<sum<<endl;// 110
vector<string> vecStr;
char ch='a';
string strNull="";
for(int j=0;j<10;j++)
{
vecStr.push_back(strNull+ch++);
}
vector<string>::iterator itStr = vecStr.begin();
for(; itStr != vecStr.end() ; itStr ++)
{
cout<<*itStr<<endl;
}
// accumulate 初至值为"before ten:" 再加上迭代器范围内的数(end()不算哦)
string sumStr = accumulate(vecStr.begin(),vecStr.end(),string("before ten:"));//注意这里要用string()
cout<<sumStr<<endl;//before ten:abcdefghij
ch-=3;
list<string> listStr;
for(int j=0;j<10;j++)
{
listStr.push_front(strNull+ch++);
}
list<string>::iterator itListStr = listStr.begin();
for(; itListStr != listStr.end() ; itListStr ++)
{
cout<<*itListStr<<endl;
}
// 在第一个元素的范围内找到第一个元素,是同时存在第二个范围内的;
size_t theSameNum = 0,thePost = 0;
itListStr = listStr.begin();
while ( (itListStr = find_first_of(itListStr,listStr.end() ,
vecStr.begin(),vecStr.end()
)
) != listStr.end()
)
{
cout<<"the "<<++theSameNum<<" element is :"<<*itListStr++<<endl;
}
cout<< "Find "<<theSameNum<<" the same"<<endl;
//the 1 element is :j
//the 2 element is :i
//the 3 element is :h
//Find 3 the same
getch();
return 0;
}