首页 > 解决方案 > 涵盖 boost::trim 并接受 std::vector 的函数

问题描述

void trimMyStrings(std::vector<std::string> &dataVectors) {
    for(auto &dataVector : dataVectors) {
        boost::algorithm::trim(dataVector);
    }
}

int main() {
    std::string firstWord = "   blaasldlasasdasd   ";
    std::string secondWord = "   asdasdasd    ";
    std::vector<std::string> combineWord{firstWord, secondWord};
    trimMyStrings(combineWord);
    std::cout << firstWord << "&" << "secondWord";
}

上面的代码不起作用

没有错误,但firstWordsecondWord没有得到修剪cout

我如何使它工作?

标签: c++boost

解决方案


您需要对放入向量中的原始字符串的引用。

std::vector<std::string*> combineWord{&firstWord, &secondWord};

然后trimMyStrings你需要更新它的参数,如:

void trimMyStrings(std::vector<std::string*> &dataVectors)

然后将 trim 与以下内容一起使用:

boost::algorithm::trim(*dataVector);

推荐阅读