繁体   English   中英

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

[英]How to combine elements of a vector in 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 值。 所以我想把向量的元素组合起来,组成一个完整的词。

谢谢,

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

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

template< class InputIt > basic_string( 先输​​入输入,最后输入, const Allocator& 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));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM