C ++迭代回调中的向量

时间:2018-05-20 01:37:42

标签: c++

我正在编写一个单元测试,每当用户按下'1'键时我需要调用函数“setMaterial”(见下文):

auto buttonPress = [this] {
    for (int i = 0; i <= mMaterials.size(); i++)
    {
        mAcoustics->setMaterial(mMaterials[i]);
    }
};

InputManager::bindKeyFunction(0x31 /* '1' key */, buttonPress, ETriggerEvent::OnRelease);

“mMaterials”是std::vector,可以保存我的所有材料。

现在这是我想要的结果:

用户按'1': mAcoustics->setMaterial(mMaterials[1]);

用户再次按'1': mAcoustics->setMaterial(mMaterials[2]);

当它到达我的向量的最后一个元素时,它应该循环回到第一个元素并重新开始。

这样做的好方法是什么?

1 个答案:

答案 0 :(得分:2)

将当前材料的索引保留为函数范围之外的变量,或将其作为参数传递给函数。

{{1}}