文章目录
- string等示例
- std::istringstream
- std::ostringstream
- std::ostream_iterator
- std::istream
- std::countif
- std::for_each
- 异常类型
这些东西都要和具体的std算法结合在一起。
string等示例
std::istringstream
把一个串初始化出来一个istringstream的流的类,继承自istream,那么,这个原本串里的空格,可以作为分隔,从stream里读入数据。
std::ostringstream
可以输出数据到这个输出流,然后out.str()提取输出到这个流里的字符串数据。
std::ostream_iterator
std::istream
#include <iostream>
#include <sstream>
#include <iterator>
#include <numeric>
#include <algorithm>
int main()
{
std::istringstream str("0.1 0.2 0.3 0.4");
std::partial_sum(std::istream_iterator<double>(str),
std::istream_iterator<double>(),
std::ostream_iterator<double>(std::cout, " "));
std::istringstream str2("1 3 5 7 8 9 10");
auto it = std::find_if(std::istream_iterator<int>(str2),
std::istream_iterator<int>(),
[](int i){return i%2 == 0;});
if (it != std::istream_iterator<int>())
std::cout << "\nThe first even number is " << *it << ".\n";
//" 9 10" left in the stream
}
Output:
0.1 0.3 0.6 1
The first even number is 8.
std::countif
判断从开始到结尾有多少满足条件的,计数
std::for_each
c++17与c++20
异常类型
std::invalid_argument
std::out_of_bounds