STL - List

이승덱·2021년 7월 21일

CPP

목록 보기
51/70
#include <iostream>

#include <vector>

#include <list>

using namespace std;

// List

// vector 동적배열

// [             ]

// 단일 / 이중 / 원형

// list : 연결 리스트

class Node {

public:

public:

 Node* _next; //객체가 직접 들어갈 순 없고 포인터여야함

 int _data;

};

// 연속적이지 않게 저장됨

// 즉 다음 데이터가 어디있는지 알고있음

int main()

{

 // list (연결 리스트)

 // - list 동작 원리

 // - 중간 삽입/삭제

 // - 처음/끝 삽입/삭제

 // - 임의 접근

 list<int> li;

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

 li.push_back(i);

 // 벡터와는 다르게 push_front를 지원함

 // 어느정도 벡터보단 효율적으로 작동한다는 증거?

 li.push_front(10);

 int size = li.size();

 //int cap=li.capacity; 지원하지 않음

 int first = li.front();

 int last = li.back();

 //li[3]=10; 임의 접근 지원하지 않음

 list<int>::iterator it; //iterator 지원 그러나 벡터의 iterator와는 다르게 작동함

 list<int>::iterator itBegin=li.begin();

 list<int>::iterator itEnd=li.end();

 for (list<int>::iterator it1 = li.begin();it1 != li.end();++it1) {

 cout << *it1 << endl;

 }

 li.insert(itBegin, 100);

 li.erase(li.begin()); li.pop_front(); //처음 삭제

 li.remove(10); // 10이라는 값을 가진 모든 데이터를 삭제함

 return 0;

}
profile
공부 기록용 블로그입니다

0개의 댓글