gpt4 book ai didi

c++ - 在 vector 上插入 C++

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:45 27 4
gpt4 key购买 nike

下面的代码在最后有很多输出字符串,我尝试将其推回 avector 并将其附加到一个字符串,这样我就可以返回它,但它只获取我需要输出的最后一个字符串所有这些。

我做错了什么才能推回所有字符串

DCS_LOG_DEBUG("--------------- Validating .X/ ---------------")
std::string str = el[i].substr(3);
std::vector<std::string>st;
split(st,str,boost::is_any_of("/"));
boost::regex const string_matcher(splitMask[0]);
if(boost::regex_match(st[0],string_matcher))
{
a = "Correct Security Instruction\n";
}
else
{
a = "Incorrect Security Instruction\n"
}


boost::regex const string_matcher4(splitMask[4]);
if(boost::regex_match(st[4],string_matcher4))
{
a = "Correct Autograpgh\n"
}
else
{
a = "Incorrect Autograpgh\n"
}

boost::regex const string_matcher5(splitMask[5]);
if(boost::regex_match(st[5],string_matcher5))
{
a = "Correct Free text\n";

}
else
{
a = "Incorrect Free text\n"
}

std::vector<std::string>::iterator it;
std::string s = ("");
output.push_back(a);
i++;

for(it = output.begin(); it < output.end(); it++)
{
s+= *it;
}

return s;

最佳答案

多次分配给 a替换,而不是连接。您正在寻找的更有可能是输出流(或输出迭代器)。

建议简化:

DCS_LOG_DEBUG("--------------- Validating .X/ ---------------")
std::string str = el[i].substr(3);
std::vector<std::string> st;
split(st,str,boost::is_any_of("/"));
boost::regex const string_matcher(splitMask[0]);
boost::regex const string_matcher4(splitMask[4]);
boost::regex const string_matcher5(splitMask[5]);

std::ostringstream oss;

oss << (boost::regex_match(st[0],string_matcher )? "correct":"incorrect") << " Security Instruction\n";
oss << (boost::regex_match(st[4],string_matcher4)? "correct":"incorrect") << " Autograpgh\n";
oss << (boost::regex_match(st[5],string_matcher5)? "correct":"incorrect") << " Free text\n";

return oss.str();

包括<sstream>对于 std::ostringstream

关于c++ - 在 vector 上插入 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com