Bit*_*iot 16 c++ string boost stl adapter
Boost join可用于连接一个字符串容器,可选择用分隔符字符串分隔,如下例所示:boost :: algorithm :: join的一个很好的例子
我的STL技能很弱.我想知道是否有任何方法可以为数字容器(浮点数,双打数,整数)使用相同的函数?看起来应该有一个或两个衬里来适应其他类型.
还有stl的复制功能,这里有一个很好的例子: 如何打印出矢量的内容?
但我不喜欢它如何在每个元素之后添加分隔符字符串.我想使用boost.
Pra*_*ian 25
当然,你可以结合起来boost::algorithm::join
,并boost::adaptors::transformed
在双打转换为字符串,然后它们连接在一起.
#include <iostream>
#include <vector>
#include <string>
#include <boost/algorithm/string/join.hpp>
#include <boost/range/adaptor/transformed.hpp>
int main()
{
using boost::adaptors::transformed;
using boost::algorithm::join;
std::vector<double> v{1.1, 2.2, 3.3, 4.4};
std::cout
<< join( v |
transformed( static_cast<std::string(*)(double)>(std::to_string) ),
", " );
}
Run Code Online (Sandbox Code Playgroud)
输出:
1.100000,2.200000,3.3000000,4.400000
你也可以使用lambda来避免丑陋的演员
join(v | transformed([](double d) { return std::to_string(d); }), ", ")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6575 次 |
最近记录: |