如何在函数中访问向量的不同成员

Bar*_*ski 2 c++ reference vector

#include <vector>

int main()
{
   vector <class> abc;
}
Run Code Online (Sandbox Code Playgroud)

按某个键的时候

vector.push_back(class());
Run Code Online (Sandbox Code Playgroud)

每个循环

draw(vector)// what should the parameters be?
Run Code Online (Sandbox Code Playgroud)

绘制功能

draw(vector,sizeofvector)
{
    for (int x=0;x< sizeofvector;x++)
    {draw vector[x];}
}
Run Code Online (Sandbox Code Playgroud)

参数怎么看?我应该通过*abc吗?

Ker*_* SB 5

在现代C++中,可以在不更正错误的情况下回答这个问题:

for (const auto & x : vector) { draw(x); }
Run Code Online (Sandbox Code Playgroud)

或者(仍在C++ 11中):

for (auto it = vector.cbegin(), end = vector.cend(); it != end; ++it)
{
  draw(*it);
}
Run Code Online (Sandbox Code Playgroud)

这可能也适用于C++ 98/03:

for (std::size_t i = 0, end = vector.size(); i != end; ++i) { draw(vector[i]); }
Run Code Online (Sandbox Code Playgroud)