- 此问题在此处已有答案**:
Why is std::uniform_int_distribution::operator() not const?(1个答案)
2天前关闭.
bool random_check = FALSE;
std::string random_string(const int len) {
const std::string alpha_numeric("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890");
std::default_random_engine generator{ std::random_device{}() };
const std::uniform_int_distribution< std::string::size_type > distribution{ 0, alpha_numeric.size() - 1 };
std::string str(len, 0);
for (auto& it : str) {
if (random_check == FALSE) {
it = alpha_numeric[distribution(generator)];
}
}
return str;
}
这是我的密码
我得到这个错误
严重性代码说明项目文件行隐藏状态错误(活动)E1087重载函数"std::uniform_int_distribution::operator()[with_Ty = size_t]"没有与参数列表和对象匹配的示例(对象具有类型限定符,阻止匹配)<_Ty>::operator() [with _Ty=size_t]" matches the argument list and object (the object has type qualifiers that prevent a match)
有人能帮我吗?
1条答案
按热度按时间cu6pst1q1#
uniform_int_distribution
保留了一个内部状态,当您使用发行版时,该状态会更新。因此,您不能将其设置为const
并使用其非const
限定的成员函数,如operator()
。