c++ 拼接字符串列表

举报
lessIsBetter 发表于 2023/08/16 14:26:26 2023/08/16
【摘要】 把vector的元素,拼接成为一个字符串。比如元素类型为string的时候,用std::copy函数#include <iostream>#include <sstream>#include <vector>#include <algorithm>#include <iterator>void func1() { std::stringstream ss; std::vector...

把vector的元素,拼接成为一个字符串。
比如元素类型为string的时候,用std::copy函数

#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>

void func1() {
    std::stringstream ss;
    std::vector<std::string> as{"a1", "b2", "c3"};
    std::copy(as.begin(), as.end(), std::ostream_iterator<std::string>(ss, ","));
    std::string str = std::move(ss.str());
    std::cout << str << std::endl;
}

int main() {
    func1();
    return 0;
}

输出为:

a1,b2,c3,

如果稍微复杂一点,不是直接打印元素,而是打印元素的函数,用std::transform.
代码:

void func2() {
    std::stringstream ss;
    std::vector<std::string> as{"a1", "b2", "c3"};
    std::transform(as.begin(), as.end(), std::ostream_iterator<char>(ss, ","),
                   [](std::string &o) { return o.front(); });
    std::string str = std::move(ss.str());
    str.pop_back();
    std::cout << str << std::endl;

}

输出:

a,b,c
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。