Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将每个字符串连接到向量中的所有字符串 我正在学习C++,所以我一直在瞎搞,想弄明白我能做什么,做不到。我写了一小段代码来处理lambda和字符串,但它似乎给了我一些问题:S_C++_C++11 - Fatal编程技术网

将每个字符串连接到向量中的所有字符串 我正在学习C++,所以我一直在瞎搞,想弄明白我能做什么,做不到。我写了一小段代码来处理lambda和字符串,但它似乎给了我一些问题:S

将每个字符串连接到向量中的所有字符串 我正在学习C++,所以我一直在瞎搞,想弄明白我能做什么,做不到。我写了一小段代码来处理lambda和字符串,但它似乎给了我一些问题:S,c++,c++11,C++,C++11,向量中有两个字符串,一个是巧克力,另一个是香草。我想把福吉连在一起。我正在声明关联的库。一切都在编译和运行。但是没有任何东西可以连接:如果有任何帮助,我们将不胜感激。提前谢谢 void main() { vector<string> ramzy; ramzy.push_back("chocolate"); ramzy.push_back("vanilla"); for_each(ramzy.begin(),ramzy.end(),

向量中有两个字符串,一个是巧克力,另一个是香草。我想把福吉连在一起。我正在声明关联的库。一切都在编译和运行。但是没有任何东西可以连接:如果有任何帮助,我们将不胜感激。提前谢谢

void main()
{

     vector<string> ramzy;
     ramzy.push_back("chocolate");
     ramzy.push_back("vanilla");

     for_each(ramzy.begin(),ramzy.end(),
         [](string word)->string{
             string i = word + " fudge";
             return (i);
         } );

     cout << ramzy[0] << endl << ramzy[1] << endl;

}
所需输出如下所示:

chocolate
vanilla
Chocolate Fudge
Vanilla Fudge
发件人:

将给定的函数对象
f
应用于解引用的结果 范围
[第一个,最后一个)
中的每个迭代器,按顺序。如果
输入是
可变迭代器,
f
可以通过 取消引用的迭代器
如果f返回一个结果,则忽略该结果

因此,您必须将lambda更改为:

[](string& word)
{
    word += " fudge";
}

根据您的需要使用transform,而不是for_each

std::transform(ramzy.begin(),ramzy.end(),ramzy.begin(),[](const std::string& str) 
          { 
                return str + " fudge"; 
           });

它不需要每次重新布线都使用。我想我需要重新学习我的lambda:S,但谢谢你的帮助。@Ramzicle“我想我需要重新学习我的lambda”-不,只是标准算法如何工作,与lambda无关。我更喜欢
std::transform
std::for_each
,但最好不要在lambda中使用
const std::string&
std::transform(ramzy.begin(),ramzy.end(),ramzy.begin(),[](const std::string& str) 
          { 
                return str + " fudge"; 
           });