C/C++ゲーム製作総合スレッド Part5at GAMEDEVC/C++ゲーム製作総合スレッド Part5 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト141:名前は開発中のものです。 14/01/27 14:38:03.04 LXwSCF8m.net ん? vectorにインスタンスをaddした後 vectorが要素数増やそうとメモリ上の位置が変わってもnewしたメモリ位置は変わらないよね? vectorが移動してるだけでvectorのメモリ上の参照してインスタンスを取ってくるわけじゃないから newした時点でインスタンスのメモリ上の位置は変わらないんじゃないの? 142:名前は開発中のものです。 14/01/27 15:44:25.62 mugBVfcb.net vectorが内部で何してるのか見当つかないのか? vectorは配列を内部でもってるだけ T* m_buffer = new T[buffer_size]; add(T obj)されると m_buffer[index] = obj; のようにコピーする そしてバッファサイズが足りなくなると再確保してコピーするわけだ int new_size = old_size * 2; T* newBuffer = new T[new_size]; for(i < old_size) { newBuffer[i] = m_buffer[i]; // 構造体とかだと、ここのコピーコスト(大) } delete[] m_buffer; // <= ここで以前確保したポインタは無効 m_buffer = newBuffer; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch