假设我有一个名为numsVec
的向量,我想用给定范围内的一些随机数替换该向量中数字10
的所有出现。
这是我的方法:
auto it = std::find(numsVec.begin(), numsVec.end(), 10);
for(it; it != numsVec.end(); it++) {
*it = rand() % 9 + 1;
}
这有效并用1和1之间的其他随机数替换了所有10
s。 9;但我得到了这个警告。
警告:声明无效[-Wunused-value] for(it; it!= numsVec.end(); it ++)
我想知道为什么以及如何摆脱这种警告? 顺便说一下,我想知道我是否可以使用here来做同样的事情。如果是,有人可以提供这样做的方法吗?
提前致谢。
修改
根据评论说我提供的代码不符合我想要实现的目标。我可能会以错误的方式做到这一点。因此,请允许我简单地询问如何用一些随机数替换给定的元素值。
编辑2:
感谢您的评论,我通过以下方式摆脱了警告:
for(; it != numsVec.end(); it++) {
*it = rand() % 9 + 1;
}
因为我这样做的方式似乎不对。我仍然要问我原来的问题:
如何使用随机数替换元素?
答案 0 :(得分:1)
您可以链接find
个调用,但在这种情况下,我认为最明确的选项是一个简单的自动循环,因为无论具体实现如何,都必须触及每个元素:
for(auto it : numsVec)
{
if(*it == 10)
{
*it = rand() % 9 + 1;
}
}