For_each将string对象连接到vector对象中的所有string对象
for_each to concatenate string, to all strings within a vector
我正在学习c++,所以很自然地,我一直在闲逛,试图弄清楚我能做什么,不能做什么。我写了一小段代码来处理lambdas和字符串,但它似乎给了我一些问题:
我有两个字符串存储在向量中,一个是巧克力,另一个是香草。我想把软糖连到最后。我在声明相关的库。一切都编译并运行。但没有任何关联。任何帮助都将不胜感激。提前感谢。
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
From reference:
std::for_each
将给定的函数对象
f
应用于解引用的结果在[first, last)
范围内的每个迭代器,按顺序。如果InputIt
是a可变迭代器,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";
});
相关文章:
- 在共享缓冲区内存中创建 ::std::string 对象
- 为什么用默认构造函数构造std::string对象时行为不同
- 如何改进我的"String"对象比较功能
- 为什么字符串的第一个输入没有分配给 std::string 对象?
- 我可以在迭代 std::string 对象时删除它中的元素吗?
- 如何在不复制和保留 std::string 对象的情况下获得 C++ std::string 字符数据的所有权
- 使用 std::ostream 方法将格式化文本输出到 std::string 对象
- 来自文字的静态std::string对象的宏
- 是否有可能从std::string对象中分离char*指针?
- 将"String"对象传递到 DJB2 哈希函数中
- 将const char*赋值给string对象有危险吗?
- For_each将string对象连接到vector对象中的所有string对象
- 我的指向 std::string 对象的指针列表无法正常工作,我无法弄清楚为什么
- String对象数组的c++选择排序
- 使用c风格字符串字面值与构造未命名std::string对象的默认建议
- 返回一个不会发生内存泄漏的c++ std::string对象
- 将二进制数据转换为ASCII等效,而不使用Arduino中的String对象
- 发布构建问题;将std::string对象传递给静态库函数
- 当std::string对象被传递给函数时,字符串数据会发生什么
- 通过重载=运算符从std::String创建String对象