2012-05-04 3 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()); 
관련 문제