トップページに戻る    次のC++のサンプルへ    前のC++のサンプルへ

2-2 STLのVectorでRemoveAtもどき

C++のサンプル

eraseメソッドを使った、STLのVectorでRemoveAtもどきのサンプルです。


ソース

#include <stdio.h>
#include <vector>

void RemoveAt(std::vector<int>& pVec, int p)
{
    std::vector<int>::iterator it = pVec.begin();
    std::advance(it,p);
    pVec.erase(it);
}

void main()
{
    std::vector<int> wkVect;
    for (int I=1;I<=10;I++){
        wkVect.push_back(I);
    }
    for (int I=0;I<=(int)wkVect.size()-1;I++){
        printf("wkVect.at(%d)=%d\n",I,wkVect.at(I));
    }

    RemoveAt(wkVect,0);
    RemoveAt(wkVect,2);
    RemoveAt(wkVect,4);

    for (int I=0;I<=(int)wkVect.size()-1;I++){
        printf("wkVect.at(%d)=%d\n",I,wkVect.at(I));
    }
}


実行結果

wkVec[0]=1
wkVec[1]=2
wkVec[2]=3
wkVec[3]=4
wkVec[4]=5
wkVec[5]=6
wkVec[6]=7
wkVec[7]=8
wkVec[8]=9
wkVec[9]=10
wkVec[0]=2
wkVec[1]=3
wkVec[2]=5
wkVec[3]=6
wkVec[4]=8
wkVec[5]=9
wkVec[6]=10


解説

Vectorのeraseメソッドで要素を削除してます。
MSDN --- vector::erase