2012-05-04 11 views
2

私はベクトルに新しいアイテムを入れようとしていて残りのアイテムを移動しようとしています。どうやってやるの ?新しいアイテムをベクターに追加し、残りの部分を右にシフト

vector ------------------------------------------------------- 
     | 1 | 2 | 3 | 4 | 5 | 9 | 10 | 15 | 21 | 34 | 56 | 99 | 
     ------------------------------------------------------- 
            ^
new item = 14, it should be added to^

After insertion, 


vector ------------------------------------------------------------ 
     | 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 21 | 34 | 56 | 99 | 
     ------------------------------------------------------------ 
             ^      ^
             ^-shifted to right by one-^ 
+0

あなたは 'std :: vector'を使用していると仮定します。私は 'insert()'関数を見ていきます。独自のベクタークラスを作成しようとしていますか? – linuxuser27

+0

std :: vectorを使用しています – compi

答えて

5

vector::insert()の機能を確認してください。

vector<int> vec ; 

// Add elements to vec 
vec.insert(vec.begin() + position, new_item); 
+0

このリンクを追加していただきありがとうございます。私は私の答えを削除します。 – linuxuser27

+0

cplucplusは使用しないでください。 http://programmers.stackexchange.com/questions/88241/whats-wrong-with-cplusplus-com – compi

+0

を参照してください。[cppreference.com](http://en.cppreference.com/w)に別の参照があります。/cpp/container/vector/insert)(または[言語標準](http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=50372)または同様の[ドラフト標準](http ://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf) - [委員会のウェブサイト](http://www.open-std.org/jtc1/ sc22/wg21 /))。 – Mankarse

1

使用insert

vector<int> v {1,2,3,5}; 
v.insert (v.begin() + 3, 4); //v is now {1,2,3,4,5} 

ベクターコンストラクタと同様に、要素の範囲やその他のクールなものを挿入することもできます。

0

あなたはその後vec.insert()がうまく動作するつもりはないされて挿入したい正確な位置がわからない場合。

vec.push_back(15); 
std::sort(vec.begin(), vec.end()); 
関連する問題