[STL] Insert Iterator Demo
Front Insert Iterator : 앞부분부터 삽입. 새치기하듯이 삽입되어서, 먼저 들어온 원소가 가장 마지막에 위치하게 된다.
Back Insert Iterator : First Com First Serv.방식 온 순서대로 차례로 왼쪽에서 오른쪽으로 삽입된 결과를 나타낸다.
Insert Iterator : Sequence Container에서는 원하는 index에 접근해서 삽입이 가능하다.
그러나 Associative Container의 경우 의미를 가지지 못한다. 따라서, 값이 정렬된 상태로
출력된다.
#include <iostream>
#include <list>
#include <vector>
#include <set>
#include <string>
#include <iterator>
using namespace std;
template<typename Container>
void PrintContainer(string strTitle,Container& cont);
int main()
{
int pArray[5] = {9,1,4,7,2};
//Front Insert Iterator
list<int> iList;
copy(pArray,pArray+5,front_inserter(iList));
PrintContainer("Front Insert",iList);
//Back Insert Iterator
vector<int> iVector;
for(int i=0; i<5; i++){
back_inserter(iVector) = pArray[i];
}
PrintContainer("Back Insert",iVector);
//Insert Iterator
set<int> iSet;
copy(pArray,pArray+5,inserter(iSet,iSet.begin()));
PrintContainer("Insert",iSet);
return 0;
}
template<typename Container>
void PrintContainer(string strTitle, Container& cont)
{
cout<<strTitle<<" : ";
for(Container::iterator it = cont.begin();it!=cont.end();++it)
{
cout.width(3);
cout<<*it;
}
cout<<endl;
}
Back Insert Iterator : First Com First Serv.방식 온 순서대로 차례로 왼쪽에서 오른쪽으로 삽입된 결과를 나타낸다.
Insert Iterator : Sequence Container에서는 원하는 index에 접근해서 삽입이 가능하다.
그러나 Associative Container의 경우 의미를 가지지 못한다. 따라서, 값이 정렬된 상태로
출력된다.
#include <iostream>
#include <list>
#include <vector>
#include <set>
#include <string>
#include <iterator>
using namespace std;
template<typename Container>
void PrintContainer(string strTitle,Container& cont);
int main()
{
int pArray[5] = {9,1,4,7,2};
//Front Insert Iterator
list<int> iList;
copy(pArray,pArray+5,front_inserter(iList));
PrintContainer("Front Insert",iList);
//Back Insert Iterator
vector<int> iVector;
for(int i=0; i<5; i++){
back_inserter(iVector) = pArray[i];
}
PrintContainer("Back Insert",iVector);
//Insert Iterator
set<int> iSet;
copy(pArray,pArray+5,inserter(iSet,iSet.begin()));
PrintContainer("Insert",iSet);
return 0;
}
template<typename Container>
void PrintContainer(string strTitle, Container& cont)
{
cout<<strTitle<<" : ";
for(Container::iterator it = cont.begin();it!=cont.end();++it)
{
cout.width(3);
cout<<*it;
}
cout<<endl;
}
댓글
댓글 쓰기