// vector.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//define
vector <int> a;
vector <int > b;
a.resize(5);
//显示数据-------------------------------------------------------
//填充数字
fill(a.begin(),a.end(),6);
printf("填充显示\n");
copy(a.begin(),a.end(),ostream_iterator<int>(cout,"\t"));
printf("\n");
//拷贝数据
copy(a.begin(),a.end(),back_inserter(b));
//set value
for(int i=0;i<5;i++)
{a.push_back(i+2);}
//显示数据-------------------------------------------------------
//反转容器
reverse(a.begin(),a.end());
printf("反转显示显示\n");
copy(a.begin(),a.end(),ostream_iterator<int>(cout,"\t"));
printf("\n");
//显示数据-------------------------------------------------------
//排序
sort(a.begin(),a.end());
printf("排序显示\n");
copy(a.begin(),a.end(),ostream_iterator<int>(cout,"\t"));
printf("\n");
//显示数据-------------------------------------------------------
//替换
replace(a.begin(),a.end(),6,7);
//replace_if(a.begin(),a.end(),bind2nd(less<int>(),4),20);
printf("替换显示\n");
copy(a.begin(),a.end(),ostream_iterator<int>(cout,"\t"));
printf("\n");
//显示数据-------------------------------------------------------
//分区
partition(a.begin(),a.end(),bind2nd(greater<int>(),4));
//replace_if(a.begin(),a.end(),bind2nd(less<int>(),4),20);
printf("分区显示\n");
copy(a.begin(),a.end(),ostream_iterator<int>(cout,"\t"));
printf("\n");
//显示数据-------------------------------------------------------
//去除重复
sort(a.begin(),a.end());
vector<int>::iterator iter=unique(a.begin(),a.end());
a.erase(iter,a.end());
printf("去除重复显示\n");
copy(a.begin(),a.end(),ostream_iterator<int>(cout,"\t"));
printf("\n");
getchar();
return 0;
}