stl vecotr erase by index

 

STLÀÇ vector¸¦ »ç¿ëÇÏ´Ù º¸¸é ¹Ýº¹ÀÚ¿¡ ÀÇÇÑ »èÁ¦ ´ë½Å À妽º·Î  »èÁ¦¸¦ ÇÒ·Á¸é

arr.erase( arr.begin() + 3 ) ¿Í °°ÀÌ ¹Ýº¹ÀÚ¿¡ 3À» ´õÇϸé 4¹ø° À妽º°¡ »èÁ¦ µÈ´Ù.

Ãâ·Â°á°ú´Â ´ÙÀ½°ú °°´Ù.

num: 0  king
num: 1  king
num: 2  king
num: 4  king
num: 5  king
num: 6  king
num: 7  king
num: 8  king
num: 9  king

 

#include <stdio.h>

#include <string>

#include <vector>

#include <stdlib.h>

#include <algorithm>

#include <iostream>

 

class Student

{

public:

    int    m_num;

    std::string m_name;

 

public:

    Student( int num, const char* name )

    {

        m_num = num;

        m_name = name;

    }

 

    int operator==( const Student& stu ) const

    {

        return ( stu.m_num == m_num && stu.m_name == m_name );

    }

};

 

typedef std::vector<Student> StudentArray;

 

void main()

{

    StudentArray arr;

 

    for( int i = 0; i < 10; ++i )

    {

        arr.push_back( Student( i, "king" ) );

    }

 

    StudentArray::iterator it = arr.begin();

 

    //4¹ø° À妽º »èÁ¦

    arr.erase( arr.begin() + 3 );

 

    //stu. ³ª  it-> ¸¦ ÀÌ¿ëÇØ Á¢±Ù ÇÒ ¼ö ÀÖ´Ù.

    for( ; it != arr.end(); ++it )

    {

        Student& stu = *it;

        std::cout << "num: " << stu.m_num << "  " << it->m_name << std::endl;

    }

}

¼Ò½º: stl_erase_index.cpp

[Âü°í or Æß ]

http://www.korone.net/bbs/board.php?bo_table=etc_misc&wr_id=82&page=3