もう、解決しちゃったかもしれないが、書いとく。

>>460
コンテナには使用したい構造体を指定する。
struct POINT
{
    int x, y;
};
std::vector<POINT> data;
POINT p; p.x = 0; p.y = 0;
data.push_back(p);
if( map[data[0].y][data[0].x] == WALL ) ...

んで、vector を使ってランダムな要素を取り出す方法
int i = rand() % data.size();  // 1.適当な位置を求める
POINT temp = data[i];    // 2.要素を取り出す
data[i] = data.back(); // 3.取り出した要素の位置に終端の要素を入れる
data.pop_back(); // 4.終端の削除

vector は配列と同じ構造なので途中の要素を削除すると非効率。
でも、終端からの削除ならサイズを変更するだけで済むので簡単にできる。

んじゃ、頑張っとくれ。