2016-10-23 4 views
0

私は定義したクラスへのポインターのベクトルを持っています。私はポインタの0のインデックスを取得し、それを返す関数があります。その後、そのインデックス内のデータを削除し、ベクトルの最後のインデックスの項目を取り出して0インデックスに配置する必要があります。現在のところ、私はそれらを返すとポインタをNULLに設定しています。そして、ベクトルの最後のオブジェクトをプッシュバックし、最後にポップバックします。この方法が私の問題を解決する最良の方法であるかどうかはわかりません。ここに私のコードががある:私はC++のポインターのベクトルをユニークな方法で更新する必要があります

アルゴリズム的
Instrument* loanOut() { 
for (int i = 0, i < library.size(), i++) { 
     if (library[i] != NULL) { 
      return library[i]; 
     } 
     else { 
      return NULL; 
     } 
    } 
    library[0] = NULL; 
    library.push_back(library[library.size()]); 

} 
+0

この質問は答えられません。私はコードに何が間違っているかを教えてもらえますが、別の解決法を提供するにはあまりにも悪い考えです。 – user4581301

答えて

0

、これはあなたが記述しているものである。

Object PopFrontAndReplace(std::vector<Object>& objects) { 
    if (!objects.size()) {return Object();} 
    Object o = objects[0]; 
    objects[0] = objects.back(); 
    objects.pop_back(); 
    return o; 
} 

ない質問に答えること?

関連する問題