I need a c++ function to get conneected vertices whit a vertice index.

and this function should very fast,because my vertices num is very large and I will call this function for every vertice.
for examle ,if I have vertice 1,2,3,4,5,6.
and have faces (1,2,3), (1,3,4),(1,4,5),(1,5,6),(1,6,2)
after call GetConnectedVertices(1) ,I will get 2,3,4,5,6 vertices. these vertices must return in
2,3,4,5,6 order,can’t return in 3,4,2,6,5 order or any other orders

// get the topology of the mesh
const ON_MeshTopology& top = mesh->Topology();
// loop over all topological vertices
for(int i = 0; i < top.m_topv.Count(); ++i)
{
const ON_MeshTopologyVertex& tv = top.m_topv[i];
// tv.m_tope_count contains the number of edges connected to
// the topological vertex tv
for(int j = 0; j < tv.m_tope_count; ++j)
{
int ei = tv.m_topei[i];
// the topology edge te is connected to tv on one side
// and to the other side to the vertex index you want to know
const ON_MeshTopologyEdge& te = top.m_tope[j];
int connectedTopologyVertexIndex = te.m_topvi[0] == i ?
te.m_topvi[1] : te.m_topvi[0];
}
}