【发布时间】:2014-03-24 19:14:54
【问题描述】:
我正在尝试通过使用 std::transform 来解密一个简单的凯撒密码来进行一些练习。但显然我的函数定义是错误的,因为编译器认为一元函数参数无效。这是我的代码:
char CryptoModule::UndoCaesar(char& letter)
{
return (letter - atoi(key_.c_str()) % 128);
}
void CryptoModule::DecryptCaesar()
{
std::transform(data_.begin(), data_.end(), data_.begin(), UndoCaesar);
}
谁能告诉我错误在哪里?此外,我需要修改什么才能使用 for_each ?我相信这将涉及将返回值更改为 void 并将结果存储在字母中。
谢谢,祝你有美好的一天
编辑:尝试添加绑定,但仍然无法正常工作。当前通话是:
std::transform(data_.begin(), data_.end(), data_.begin(), bind(&UndoCaesar, this, std::placeholders::_1));
【问题讨论】:
标签: c++ string algorithm c++11 transform