遍历
1.函数遍历法
bool funcdemo(int value){
cout << value << endl; };
for_each(v.begin(), v.end(), funcdemo);
2.仿函数遍历法; 重载小括号使用匿名对象调用 for_each() 返回值就是 Myclass 对象
class MyClass{
public:
void operator()(int v)
{
cout << v << endl; }
};
for_each(v.begin(), v.end(), MyClass());
查找
一般类型 ,find_if 一样, 只是只能使用仿函数
vector<int>::iterator pos = find(v.begin(), v.end(), 5);
自定义类型 重载类中的==符号
class Person{
public:
Person(string name)
{
this->name = name;
}
bool operator==(const Person& p)
{
if (this->name ==p.name)
{
return true;
}
return false;
}
string name; };
vector<Person> vp;
Person p1("wyc");
Person p2("wy");
vp.push_back(p1);
vp.push_back(p2);
vector<Person>::iterator pos = find(vp.begin(), vp.end(), p2);
拷贝
copy(vp.begin(), vp.end(), target.begin() ); 将 vp的内容拷贝到 target 容器内
替换
replace( v.begin(), v.end(), 3, 100); 将v中所有3替换为 100
交换
swap(v1,v2)