gpt4 book ai didi

c++ - boost:algorithm::join() 可以连接一个 float 容器吗?

转载 作者:IT老高 更新时间:2023-10-28 22:35:22 25 4
gpt4 key购买 nike

Boost 连接可用于连接字符串容器,可选地由分隔符字符串分隔,如下例所示:A good example for boost::algorithm::join

我的 STL 技能很弱。我想知道是否有任何方法可以对数字容器( float 、 double 、整数)使用相同的函数?似乎应该有一些一两行来适应其他类型。

还有 STL 的复制功能,这里有一个很好的例子: How to print out the contents of a vector?

但我不喜欢它在每个元素之后添加分隔符字符串的方式。我只想使用 boost。

最佳答案

当然,您可以结合 boost::algorithm::joinboost::adaptors::transformed将 double 转换为字符串,然后将它们连接在一起。

#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) ),
", " );
}

输出:

1.100000, 2.200000, 3.300000, 4.400000


您还可以使用 lambda 来避免丑陋的类型转换

join(v | transformed([](double d) { return std::to_string(d); }), ", ")

关于c++ - boost:algorithm::join() 可以连接一个 float 容器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16964353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com