class A;
void Test(A *a);
みたいな関数をツクって
それでAをリストなりベクトルなりで管理し、イテレータで操作した場合
Test(&(*q)); // qはイテレータ
みたいなやり方ってスマートじゃないですかね。見た目からして…