c++ STL 五 容器常用算法

遍歷

   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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章