如何在C++中组合向量的元素



这是我正在使用的一个示例程序。

while(split.good()){
            split >>first;
            split >>second;
            word=first + second;
            //cout<< static_cast<char> (word)<<endl;
            vec.push_back(static_cast<char> (word));
        }

第一个和第二个是int值。所以我想把向量的元素组合成一个完整的单词。

谢谢,

首先,您应该注意@AliciaBytes关于while循环的建议。

要将vector中的所有元素组合为一个单词,可以使用以下std::string构造函数,该构造函数使用两个迭代器:

模板<class InputIt>basic_string(先输入、后输入,const分配器&alloc=Allocator());

传入vector:的开始和结束iterator

const std::string s{std::begin(vec), std::end(vec)};

这将把vec的每个元素添加到std::string中。或者,您可以使用for循环:

std::string s;
for (auto c : vec)
{
    // Add each character to the string
    s += c;
}

首先更改循环,检查.eof().good()是个坏主意,请参阅循环条件中的iostream::eof为什么被认为是错误的?了解更多信息。改为使用:

while(split >> first && split >> second)

检查读取值是否真的有效。

我误解了这个问题,所以下面的答案并不是真正想要的,请查看@Tas的答案

接下来,如果我理解正确,你想把整数转换成字符串吗?这有点不清楚,但看看std::to_string()。也许你想要这样的东西:

while(split >> first && split >> second) {
    word = first + second;
    vec.push_back(std::to_string(word));
}

最新更新