我正在阅读有关使用 SDL 进行操纵杆输入处理的教程,但我正在努力处理部分代码。
在 .h 文件中我得到:
std::vector<std::pair<Vector2D*, Vector2D*> > m_joystickValues;
在 .cpp 文件中我得到了:
m_joystickValues.push_back(std::make_pair(new Vector2D(0,0),new Vector2D(0,0)));
在这种情况下,我有一个操纵杆,如果有很多操纵杆,就会有更多的 push_backs,我想访问“m_joystickValues”中的地址,以便我可以在干净的函数中删除它们。
任何人都知道如何使用 for 循环执行此操作。谢谢
最佳答案
例如你可以使用基于范围的for语句
for ( auto &p : m_joystickValues )
{
delete p.first;
delete p.second;
}
同样可以使用普通的for语句来完成
for ( size_t i = 0; i < m_joystickValues.size(); i++ )
{
delete m_joystickValues[i].first;
delete m_joystickValues[i].second;
}
或者您可以使用标准算法 std::for_each
和适当的 lambda 表达式。它类似于使用带有迭代器的 for 语句。
关于c++ - 在 C++ 中使用 for 循环遍历 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25048396/