Get Connected Vertices whit a vertice index

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

c# sdk has a MeshVertexList class ,but I can’t find this class in c++ sdk

You should look in to ON_MeshTopology:

// 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];