#include<iostream>
using namespace std;
#include<vector>
#include"functional"
#include"algorithm"
#include<set>
#include<string>
#include<list>
#include<stack>
//copy 算法 将一个容器中的值拷贝到另一个容器中
void main71()
{
vector<int> m_vec;
m_vec.push_back(2);
m_vec.push_back(1);
m_vec.push_back(3);
m_vec.push_back(4);
vector<int> m_vec_1;
m_vec_1.resize(m_vec.size());
copy(m_vec.begin(), m_vec.end(), m_vec_1.begin());
for (vector<int>::iterator it = m_vec_1.begin(); it != m_vec_1.end(); it++)
{
cout << *it << " ";
}
}
void printfVec(vector<int> m_vec_1)
{
for (vector<int>::iterator it = m_vec_1.begin(); it != m_vec_1.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
bool thanTwo(const int a)
{
if (a > 2)
{
return true;
}
else
{
return false;
}
}
//replace 以及 replace_if() 算法
void main72()
{
vector<int> m_vec;
m_vec.push_back(2);
m_vec.push_back(1);
m_vec.push_back(3);
m_vec.push_back(4);
m_vec.push_back(3);
m_vec.push_back(8);
printfVec(m_vec);
//将所有的3换成8
replace(m_vec.begin(), m_vec.end(),3, 8);
printfVec(m_vec);
//replace_if()算法 将所有大于2的数换成0 采用自己定义的一元谓词
replace_if(m_vec.begin(), m_vec.end(), thanTwo, 0);
printfVec(m_vec);
}
//swap() 算法 交换两个容器当中的值
void main73()
{
vector<int> m_vec;
vector<int> m_vec_1;
m_vec.push_back(2);
m_vec.push_back(1);
m_vec.push_back(3);
m_vec.push_back(4);
m_vec_1.push_back(12);
m_vec_1.push_back(11);
m_vec_1.push_back(13);
m_vec_1.push_back(14);
printfVec(m_vec);
printfVec(m_vec_1);
swap(m_vec, m_vec_1);
printfVec(m_vec);
printfVec(m_vec_1);
}
int main()
{
//main71();//copy 算法 将一个容器中的值拷贝到另一个容器中
//main72();//replace_if() 算法
main73(); //swap() 算法 交换两个容器当中的值
system("pause");
return 0;
}
C++STL 常用的拷贝和替换算法
最新推荐文章于 2018-10-12 15:47:39 发布