list<int> li;
for(int i = 0; i < 1000; i++)
li.push_back(i);
int size = li.size();
// int capacity = li.capacity(); // 없음
int first = li.front();
int last = li.back();
// li[3] = 10; // 임의접근 불가
list<int>::iterator itBegin = li.begin();
list<int>::iterator itEnd = li.end();
for(list<int>::iterator it = li.begin(); it != li.end(); ++it)
{
cout << *it << endl;
}
li.insert(itBegin, 100);
li.erase(li.begin());
li.pop_front();
li.remove(10); // 지원함, vector보다 손쉽게 중간요소를 제거할 수 있음.
그런데 임의접근이 안되는데, 중간 삽입/삭제는 빠르다고??
중간에 접근하는게 임의 접근아닌가? 어떻게 빠를수 있지??
list<int>::iterator it = li.begin();
for(int i = 0; i < 50; i++)
++it;
li.erase(it);
좀 말장난인게, 삽입/삭제가 빠르단 말이지 찾는게 빠르단 말이아님,
iterator로 요소를 갖고있는 경우 삽입/삭제가 빠르단 말이다.