'Programming/STL'에 해당되는 글 5건

  1. 2009.12.22 * Iterator
  2. 2009.12.22 * List
  3. 2009.12.22 * Deque
  4. 2009.12.21 * Vector
  5. 2009.12.21 * 컨테이너
2009. 12. 22. 10:08

// 반복자는 컨테이너가 소유한 원소들을 순회할 수 잇는 객체이다.
// 반복자는 컨테이너의 특정위치를 나타낸다.
// 반복자는 복잡한 자료구조를 지닌 컨테이너를 순회할 수 있는 스마트 포인터이다.

// *      연산자 : 지금 현재 위치의 원소를 반환. ->를 사용하여 곧바로 엑세스 할 수 있다.
// ++     연산자 : 현재 원소의 다음 원소를 가리킨다.
// ==, != 연산자 : 두 반복자가 같은 위치를 나타내는지 반환.
// =      연산자 : 반복자를 할당한다.(반복자가 참조하는 원소의 위치)    


#include <iostream>
#include <list>
using namespace std;

void main()
{
 list<char> coll;

 // 'a'부터 'z'까지의 원소를 추가.
 for(char c='a'; c<='z'; ++c){

  coll.push_back(c);
 }

 // 모든 내용을 출력한다.
 list<char>::const_iterator pos;
 for(pos=coll.begin(); pos!=coll.end(); ++pos){

  cout << *pos << ' ';
 }
 cout << endl;
}

// begin() : 컨네이너의 첫 번째 위치를 가리키는 반복자를 반환한다.

'Programming > STL' 카테고리의 다른 글

* List  (0) 2009.12.22
* Deque  (0) 2009.12.22
* Vector  (0) 2009.12.21
* 컨테이너  (0) 2009.12.21
Posted by 어북어위크
2009. 12. 22. 09:25

// 이중 링크드 리스트처럼 구현되어 있다.
// 리스트 안의 원소가 자신만의 메모리를 가지고 있다.
// 랜덤 엑세스를 지원하지 않는다.
// 어떠한 위치에서도 빠르게 삽입 및 제거가 이러어진다. 링크된 주소만 변경되면 된다.
// vector나 deque에 비해서 매우 빠르다.

#include <iostream>
#include <list>        // 리스트를 사용하기 위한 헤더파일.
using namespace std;

void main()
{
 list<char> coll;


 // a부터 z까지 삽입.
 for(char c='a'; c<='z'; ++c){

  coll.push_back(c);
 }

 // list안에 원소가 없을 때까지 원소들을 출력한다. 그리고 첫번째 원소 삭제.
 while(! coll.empty() ){

  cout << coll.front() << ' ';  // 첫번째 원소를 반환한다.
  coll.pop_front();     // 첫번째 원소를 삭제한다.

 }

 cout << endl;
 cout << "size : " << coll.size() << endl;


}

'Programming > STL' 카테고리의 다른 글

* Iterator  (0) 2009.12.22
* Deque  (0) 2009.12.22
* Vector  (0) 2009.12.21
* 컨테이너  (0) 2009.12.21
Posted by 어북어위크
2009. 12. 22. 09:17

// 앞과 뒤, 양쪽 방향으로 증가될 수 있다.
// vector와는 달리 앞과 뒤에 원소를 삽입하는 동작 모두 빠르다.
// 원소 중간에 삽입하는 동작은 원소들이 움직여야 하기 때문에 시간이 걸린다.

#include <iostream>
#include <deque>                                               // deque를 사용하기위한 헤더파일.
using namespace std;

void main()
{
 deque<float> coll;

 // 앞부분에 1.1부터 6.6까지 삽입.
 for(int i=1; i<=6; ++i){

  coll.push_front(i*1.1);
 }

 // 모든 내용을 출력한다.
 for(int i=0; i<coll.size(); ++i){

  cout << coll[i] << ' ';
 }

 
}

'Programming > STL' 카테고리의 다른 글

* Iterator  (0) 2009.12.22
* List  (0) 2009.12.22
* Vector  (0) 2009.12.21
* 컨테이너  (0) 2009.12.21
Posted by 어북어위크
2009. 12. 21. 16:33

// 자신의 원소들을 동적인 배열을 이용하여 관리한다.
// 랜덤엑세스 지원.
// 인덱스를 가지고 곡바로 사용자가 원하는 데이터를 엑세스 할 수 있다.
// 배열의 끝부분에 데이타 추가, 삭제하는 것은 매우 빠르다. 그러나데니터를 배열의 중간이나 앞부분에 삽입하는 것은, 삽입된 위치 이후의 원소들을 모두 이동 해야 하기 때문에 많은 시간이 걸린다.


//EX> 원소 삽입 후, 출력 예제.
#include <iostream>
#include <vector>      // vector을 사용하기 위한 헤더파일.

using namespace std;

void main()
{
 vector<int> coll;     // vector 선언.
          // 초기화되지 않은상태.
          // 디폴트 생성자는 빈 컬렉션으로 생성.
          // size 함수는 모든 컨테이너에서 사용가능.

 // 1~6을 추가함.
 for(int i=1; i<=6; ++i){
  coll.push_back(i);
 }

 // 모든 원소를 출력함.
 for(int i=0; i<coll.size(); ++i){

  cout << coll[i] << endl;
 }
 
 cout << endl;
}

'Programming > STL' 카테고리의 다른 글

* Iterator  (0) 2009.12.22
* List  (0) 2009.12.22
* Deque  (0) 2009.12.22
* 컨테이너  (0) 2009.12.21
Posted by 어북어위크
2009. 12. 21. 16:06
1. Sequence container
 - 모든 원소들이 자신만의 위치를 가지고 있는  순서가 있는 컬렉션.
 - vector, deque, list
 
2. Associtavie container
 - 모든 원소들이 정렬 기준에 의하여 자동 정렬이 되는 컬렉션이다.
 - 정렬 기준에 의하여 순서를 갖는다.
 - set, multiset, map, multimap

'Programming > STL' 카테고리의 다른 글

* Iterator  (0) 2009.12.22
* List  (0) 2009.12.22
* Deque  (0) 2009.12.22
* Vector  (0) 2009.12.21
Posted by 어북어위크