我试图将向量中的所有元素合并为一个新的字符串,但我无法获得如何做到这一点的示例。大多数示例都是在向量之间以及在C++ std::cout中级联的。我不知道如何在MFC VC++中这样做。
假设我有一个向量(在CString中),其中包含元素I am a naughty boy。如何将它们组合起来,并将它们保存为
CString str;
str = "I am a naughty boy"
编辑:
struct REVLISTDATA {
CString str_;
REVLISTDATA(CString str_element) : str_(str_element) {}
};
std::vector<REVLISTDATA> vec;发布于 2020-11-11 08:22:45
如果我完全理解你的要求,这里有一个方法:
for (size_t i = 0; i < vec.size(); ++i)
{
str.AppendFormat(vec.at(i));
if (i < vec.size() - 1)
str.AppendFormat(_T(" ")); // spaces between words
}假定您的vec是std::vector<CString>
编辑:所以,而不是str.AppendFormat(vec.at(i));,您应该使用str.AppendFormat(vec.at(i).str_);
稍后编辑:我已经尝试了以下代码并正常工作:
struct REVLISTDATA
{
CString str_;
REVLISTDATA(CString str_element) : str_(str_element) {}
};
std::vector<REVLISTDATA> vec;
vec.push_back(REVLISTDATA("I"));
vec.push_back(REVLISTDATA("am"));
vec.push_back(REVLISTDATA("a"));
vec.push_back(REVLISTDATA("naughty"));
vec.push_back(REVLISTDATA("boy"));
CString str;
for (size_t i = 0; i < vec.size(); ++i)
{
str.AppendFormat(vec.at(i).str_);
if (i < vec.size() - 1)
str.AppendFormat(_T(" ")); // spaces between words
}所以,我想你的例外是来自另一种方式。
https://stackoverflow.com/questions/64782260
复制相似问题