连接由C ++中的类方法提供的字符串

梅尔

我的问题很简单:我有一个动态对象数组,这些对象具有返回字符串的方法。我想将所有这些字符串连接在一起。

如果我有一个字符串数组而不是带有返回字符串的方法的对象,那么这将是一个微不足道的任务:

std::vector<std::string> v{ "f", "o", "o" };
std::string const x = std::accumulate(v.begin(), v.end(), std::string());

但就我而言,它看起来像这样:

struct foo
{
    foo(std::string const & name) : name_(name) {}
    std::string const & name() const { return name_; }

    private:
        std::string const name_;
};

std::vector<foo> v{ foo("f"), foo("o"), foo("o") };

我想使用标准库算法,因为我确信它们是高效的,并且我不需要调试它们,但这很难阅读和理解:

std::vector<std::string> transformed(v.size());
std::transform(v.begin(), v.end(), transformed.begin(),
    [](foo const & f) { return f.name(); });
std::string const x = std::accumulate(transformed.begin(), transformed.end(),
    std::string());

未来的维护者可能(并且理应如此)追捕我,以免我不必要地使一项简单的任务复杂化,这可以用以下方法解决:

std::string x;
for(auto const & f : v)
    x += f.name();

这里有没有我看不到的更简单的东西,或者确实是应该让标准库休息并使用for循环的情况(无论如何,这归结起来)?

埃尔伯斯说恢复莫妮卡

如果您坚持使用STL,则还有另一个版本std::accumulate

template< class InputIt, class T, class BinaryOperation >
T accumulate( InputIt first, InputIt last, T init, BinaryOperation op );

然后您的代码可以成为

std::string const x = std::accumulate(v.begin(), v.end(), std::string(),
                         [](std::string a, foo const& b){return a += b.name();});

编辑:也许更适合复制删除声明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当实体框架模型在专用的类库中时,如何在C#应用程序中定义连接字符串和数据库提供程序?

来自分类Dev

C#SQL连接类连接中的字符串问题

来自分类Dev

在 C 中连接环境变量和字符串并提供给 fopen()

来自分类Dev

在C中连接字符串

来自分类Dev

在C中连接字符串

来自分类Dev

自动连接Spring @Configuration类中的字符串?

来自分类Dev

在LESS中连接字符串作为类名

来自分类Dev

DotNet Core - 类库中的连接字符串

来自分类Dev

由c ++字符串类定义的字符串文字是否为const char []类型

来自分类Dev

由c ++字符串类定义的字符串文字是否为const char []类型

来自分类Dev

在C#Visual Studio中将int转换为字符串的类中的方法

来自分类Dev

在C ++中的静态方法中将类名称作为字符串获取

来自分类Dev

C#如何在类中嵌入连接字符串?

来自分类Dev

C#如何在类中嵌入连接字符串?

来自分类Dev

连接C字符串

来自分类Dev

是否有内置的方法来解析C中用户提供的字符串中的标准转义序列?

来自分类Dev

是否有内置的方法来解析C中用户提供的字符串中的标准转义序列?

来自分类Dev

字符串类中的指针与整数之间的比较-C ++

来自分类Dev

使字符串变量成为C ++中的类名

来自分类Dev

将字符串追加到C ++中的类变量

来自分类Dev

由字符串组成的numpy数组的连接函数

来自分类Dev

字符串未由C ++打印

来自分类Dev

如何使用C#在app.config中为mysql数据库提供默认的连接字符串

来自分类Dev

在 Python 中连接字符串 - 最快的方法是什么

来自分类Dev

在C#中,如果(字符串)类名称已知,如何从该(字符串)类实例化对象?

来自分类Dev

如何在pymongo mongoclient中的连接字符串中提供pemfile密码

来自分类Dev

如何在pymongo mongoclient中的连接字符串中提供pemfile密码

来自分类Dev

为什么我不能从同一类C#中的方法访问公共字符串

来自分类Dev

python使用由字符串变量创建的类的绑定方法

Related 相关文章

  1. 1

    当实体框架模型在专用的类库中时,如何在C#应用程序中定义连接字符串和数据库提供程序?

  2. 2

    C#SQL连接类连接中的字符串问题

  3. 3

    在 C 中连接环境变量和字符串并提供给 fopen()

  4. 4

    在C中连接字符串

  5. 5

    在C中连接字符串

  6. 6

    自动连接Spring @Configuration类中的字符串?

  7. 7

    在LESS中连接字符串作为类名

  8. 8

    DotNet Core - 类库中的连接字符串

  9. 9

    由c ++字符串类定义的字符串文字是否为const char []类型

  10. 10

    由c ++字符串类定义的字符串文字是否为const char []类型

  11. 11

    在C#Visual Studio中将int转换为字符串的类中的方法

  12. 12

    在C ++中的静态方法中将类名称作为字符串获取

  13. 13

    C#如何在类中嵌入连接字符串?

  14. 14

    C#如何在类中嵌入连接字符串?

  15. 15

    连接C字符串

  16. 16

    是否有内置的方法来解析C中用户提供的字符串中的标准转义序列?

  17. 17

    是否有内置的方法来解析C中用户提供的字符串中的标准转义序列?

  18. 18

    字符串类中的指针与整数之间的比较-C ++

  19. 19

    使字符串变量成为C ++中的类名

  20. 20

    将字符串追加到C ++中的类变量

  21. 21

    由字符串组成的numpy数组的连接函数

  22. 22

    字符串未由C ++打印

  23. 23

    如何使用C#在app.config中为mysql数据库提供默认的连接字符串

  24. 24

    在 Python 中连接字符串 - 最快的方法是什么

  25. 25

    在C#中,如果(字符串)类名称已知,如何从该(字符串)类实例化对象?

  26. 26

    如何在pymongo mongoclient中的连接字符串中提供pemfile密码

  27. 27

    如何在pymongo mongoclient中的连接字符串中提供pemfile密码

  28. 28

    为什么我不能从同一类C#中的方法访问公共字符串

  29. 29

    python使用由字符串变量创建的类的绑定方法

热门标签

归档