2015-02-02 7 views
0

벡터 (요소가 n 개 이하 여야 함)가 꽉 찼는 지 확인하고 첫 번째 요소를 제거하여 다른 요소를 추가하는 방법이 있습니까?다른 요소를 추가하려면 벡터에서 제거

+1

'if (v.size()> = n) v.erase (v.begin()); '이게 당신이 찾고있는 것입니까? –

+1

대신에 std :: deque를 사용하거나 "C++ 순환 버퍼"를 검색하십시오 –

+0

@ DieterLücking'std :: deque'가 크기 제한을 지원합니까? –

답변

0

원하는 것은 std::deque입니다. Deque는 앞뒤 모두 양방향에서 터지는 것을 지원합니다. (코멘트에 이미 언급 한 바와 같이)

void my_push(std::deque<int>& sample, int element) 
{ 
    if(sample.size() >= MAX_SIZE) 
    { 
     sample.pop_front(); // pop off the front element. 
     sample.push_front(element); 
    } 
    else { 
     // do whatever you want to... 
    } 
} 
관련 문제