primer C++笔记
泛型算法概述
只读算法
back_inserter
*iter = 40 反复录入(push_back)
消除重复单词
使用unique
练习
bool divededByThree(int i)
{
return i % 3 == 0;
}
void test01()
{
std::vector<int> v{ 1, 2, 3, 4, 4, 3, 7, 8, 9, 10 };
// 确定 std::vector 中有多少个整数匹配目标值。
int val1 = 3;
int val2 = 5;
int num_val1 = std::count(v.begin(), v.end(), val1);
int num_val2 = std::count(v.begin(), v.end(), val2);
std::cout << "number: " << val1 << " count: " << num_val1 << '\n';
std::cout << "number: " << val2 << " count: " << num_val2 << '\n';
// 用lambda表达式计量能被 3 整除的元素数。
int num_val3 = std::count_if(v.begin(), v.end(), [](int i) {return i % 3 == 0; });
std::cout << "number divisible by three: " << num_val3 << '\n';
// 用谓词计量能被 3 整除的元素数。
int num_val4 = std::count_if(v.begin(), v.end(), divededByThree );
std::cout << "number divisible by three: " << num_val4 << '\n';
}
void test02()
{
vector<string> v{ "hello", "at", "as", "but", "at", "yes" };
string val1 = "hello";
string val2 = "at";
int num_val1 = count(v.begin(), v.end(), val1);
int num_val2 = count(v.begin(), v.end(), val2);
std::cout << "string: " << val1 << " count: " << num_val1 << '\n';
std::cout << "string: " << val2 << " count: " << num_val2 << '\n';
}