c++ - 使用 for_each ,复制字符串

标签 c++ string stl iterator

我的程序有一些问题,也许有人可以帮助我。所以:

int main() {
    std::string col = "maly tekst"
    for_each(/* FILL IN #2*/ f());
    copy(/*FILL IN #3*/);
    std::cout << col; }

输出应该是:TSKET YLAM
我知道我需要使用 Functor 所以我做了这样的事情:

#include <iostream>
#include <string>
#include <algorithm>
class f{
public:
void operator() (char &k)const
{
   k = toupper(k);
}
};
int main(){
std::string col = "maly tekst";
for_each(col.begin(),col.end(),f());
copy(col.rbegin(),col.rend(),back_inserter(col));
std::cout << col << std::endl;
}

但是现在当我运行它时它会返回:

MALY TEKSTTSKET YLAM

有人可以指出我正确的方法,或者帮助我完成这个示例程序吗?

谢谢

E:忘了补充一点,我只能在 main 中使用这个函数,我无法添加任何新内容

最佳答案

std::for_each(col.begin(),col.end(),f()); // as before
std::reverse(col.begin(), col.end());

关于c++ - 使用 for_each ,复制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470234/

相关文章:

java - Java View 中的 C++ : I must have missed a few things

C++ 继承和名称隐藏

python - 正则表达式标点符号拆分 [Python]

java - java - 如何检查String值是否为Java中的 boolean 类型?

c++ - 是否有一个标准容器允许在不使迭代器失效的情况下插入元素?

c++ - C2057 : expected constant expression

带有 __attribute__ 的 C++ 结构体代码

c++ - 如何将整数转换为 std::u16string (C++11)?

c++ - 多线程无锁应用程序中具有多个迭代器的一个 vector

c++ - 对于未排序的范围是否有等效的 std::includes ?