4、常用拷贝和替换算法
copy
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#include<functional>
#include<ctime>
void myprint(vector<int>& v)
{
for (vector<int>::iterator it = v.begin();it != v.end();it++)
{
cout << *it << " ";
}
}
void test01()
{
vector<int>v;
v.push_back(1);
v.push_back(0);
v.push_back(3);
v.push_back(5);
v.push_back(7);
v.push_back(1);
v.push_back(0);
v.push_back(2);
v.push_back(1);
myprint(v);
cout << endl;
vector<int>v1;
v1.resize(v.size());
copy(v.begin(), v.end(),v1.begin());
myprint(v1);
cout << endl;
}
int main()
{
srand((unsigned int)time(NULL));
test01();
}
replace
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#include<functional>
#include<ctime>
void myprint(vector<int>& v)
{
for (vector<int>::iterator it = v.begin();it != v.end();it++)
{
cout << *it << " ";
}
}
void test01()
{
vector<int>v;
v.push_back(1);
v.push_back(0);
v.push_back(3);
v.push_back(5);
v.push_back(7);
v.push_back(1);
v.push_back(0);
v.push_back(2);
v.push_back(1);
myprint(v);
cout << endl;
replace(v.begin(), v.end(), 1, 2000);
myprint(v);
}
int main()
{
srand((unsigned int)time(NULL));
test01();
}
replace_if
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#include<functional>
#include<ctime>
void myprint(vector<int>& v)
{
for (vector<int>::iterator it = v.begin();it != v.end();it++)
{
cout << *it << " ";
}
}
class Greater2
{
public:
bool operator()(int a)
{
return a > 2;
}
};
void test01()
{
vector<int>v;
v.push_back(1);
v.push_back(0);
v.push_back(3);
v.push_back(5);
v.push_back(7);
v.push_back(1);
v.push_back(0);
v.push_back(2);
v.push_back(1);
myprint(v);
cout << endl;
replace_if(v.begin(), v.end(), Greater2(),3000);
myprint(v);
}
int main()
{
srand((unsigned int)time(NULL));
test01();
}
swap
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#include<functional>
#include<ctime>
void myprint(vector<int>& v)
{
for (vector<int>::iterator it = v.begin();it != v.end();it++)
{
cout << *it << " ";
}
}
class Greater2
{
public:
bool operator()(int a)
{
return a > 2;
}
};
void test01()
{
vector<int>v;
vector <int>v2;
v.push_back(1);
v.push_back(0);
v.push_back(3);
v.push_back(5);
v.push_back(7);
v.push_back(1);
v.push_back(0);
v.push_back(2);
v.push_back(1);
myprint(v);
cout << endl;
swap(v, v2);
myprint(v);
}
int main()
{
srand((unsigned int)time(NULL));
test01();
}