书籍:C++之父的《C++程序设计语言》
例子:复制一个容器的值到另外一个容器,
sort()先排序,然后unique_copy无重复的复制到新容器中
back_inserter是追加到新容器后面。如果不适用back_inserter极容易引起越界错误。(写入超出结束位置)
#include <vector>
#include <list>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
vector<int> Vint;
list<int> Lint;
Vint.push_back(2);
Vint.push_back(8);
Vint.push_back(5);
Vint.push_back(0);
Vint.push_back(10);
Lint.push_back(2);
Lint.push_back(8);
Lint.push_back(5);
Lint.push_back(0);
Lint.push_back(10);
sort(Vint.begin(), Vint.end());
unique_copy(Vint.begin(), Vint.end(), Lint.begin());
unique_copy(Vint.begin(), Vint.end(), back_inserter(Lint));
cin.get();
return 0;
}
返回一个string中一个字符出现的次数
int count(const string& s, char c)
{
int n = 0;
string::const_iterator i= find(s.begin(), s.end(), c);
while (i != s.end()) {
++n;
i = find(i + 1, s.end(), c);
}
return n;
}