STL의 컨테이너를 사용해보았다면 forward_list라고 해서 딱히 어려운 부분은 없습니다. 다만 forward_list이 단 방향 리스트라는 것과 다른 컨테이너에서는 지원하는 기능이 일부 없다는 것을 잘 숙지해야 합니다.
필요한 헤더 파일
forward_list는 이름과 같은 ‘forward_list’라는 헤더 파일을 포함해야 합니다.
#include <forward_list>
[예제] forward_list를 사용하여 요소 추가, 순회, 삭제하기
#include "stdafx.h"
#include <iostream>
#include <forward_list>
using namespace std;
int main()
{
forward_list< int > flist;
cout << "flist에 추가한 요소들 출력" << endl;
// 추가하기
auto iter = flist.before_begin();
for( int i = 0; i < 5; ++i )
{
iter = flist.insert_after( iter, i );
}
// 순회
for( iter = flist.begin(); iter != flist.end(); ++iter )
{
cout << *iter << endl;
}
cout << endl;
cout << "flist의 요소들 중 일부를 삭제한 후 남은 요소들 출력" << endl;
// 순회 하면서 일부 요소 삭제
auto prev_iter = flist.before_begin();
iter = flist.begin();
while( iter != flist.end() )
{
if( 3 == *iter )
{
iter = flist.erase_after( prev_iter );
continue;
}
++prev_iter;
++iter;
}
// 순회
for( iter = flist.begin(); iter != flist.end(); ++iter )
{
cout << *iter << endl;
}
return 0;
}
< 결과 >
위 예제를 보면 아시겠지만 forward_list는 std::list에 비해 성능 면의 이점을 가지고 있지만 사용 측면에서는 조금 불편한 점이 좀 있습니다. 그러나 C와 비슷한 성능을 내고 싶은 경우에는 좋은 선택 기가 될 수도 있습니다.
참고
http://msdn.microsoft.com/ko-kr/library/ee373568.aspx
'C++0x' 카테고리의 다른 글
| [미리 보는 C++11] 1. UTF-8, UTF-16(char_16t), UTF-32(char32_t) 문자형 (7) | 2011/08/22 |
|---|---|
| C++0x가 드디어 C++11이 되었습니다. (9) | 2011/08/15 |
| [STL] 15. VC++ 10에 추가된 새로운 컨테이너 forward_list – 사용편 (3) | 2011/06/21 |
| [STL] 14. VC++ 10에 추가된 새로운 컨테이너 forward_list – 소개편 (4) | 2011/06/14 |
| [STL] 13. <algorithm>에 추가된 새로운 함수들 minmax_element (3) | 2011/05/30 |
| [STL] 12. <algorithm>에 추가된 새로운 함수들 iota (1) | 2011/05/19 |




댓글을 달아 주세요
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
사람들이 정말 인상되는 색상을 사용하는 송장을 기억하고 읽을 수있는 정도 효과되지 않습니다 또 다른 방법입니다. 인보이스는 녹색 종이에 보냈습니다. 모두가 녹색 송장의 템포를 기억하기 때문에 우리가 통과 법안을 추구했을 때 실제로 얼음을 깰.
당신을 구입 아니라 이름에 투자하는 사람들에게 이점을 제공합니다. 그것은 저렴 방법, 개인 서비스의. 제공하는 서비스는, 심지어 가장 큰 대부분의 인터넷 기업을 통해 이점 것입니다.