cpp deque
include <deque>
double ended queue . 입출구가 양쪽 끝에 달린 형태.
++Iterators
begin, end, rbegin, rend, cbegin, cend, crbegin, crend
++capacity
size, max_size, resize, empty, shrink_to_fit
++elements access
[], at, front, back
++modifiers
assign, push_back, push_front, pop_back, pop_front
insert, erase, swap, clear, emplace, emplace_front, emplace_back
ex)
std::deque<int> myq (2, 100) ; // 100을 값으로 2개 노드 생성.. 100,100
myq.push_front(200) ; // 200,100,100
myq.push_front(300) ; // 300,200,100,100
myq.push_back(99) ; // 300, 200,100,100, 99
std::cout << myq.front() << '\n' ; // 300
std::cout << myq.back() << '\n' ; // 99
myq.pop_front() ; // 200,100,100,99
myq.pop_back() ; // 200,100,100
// 출력
for (std::deque<int>::iterator it=myq.begin(); it!=myq.end(); ++it) {
std::cout<<' ' << *it ;
}
+insert
iterator insert(const_iterator pos, const value_type& val) ; // 지정된 위치에 삽입.
iterator insert( ", size_type n, const vlaue_type &val) ; // 지정된 위치에 해당 값을 n개 삽입. (fill)
iterator insert(", InputIterator first, last) ; // 지정한 위치에 범위를 삽입.
iterator insert(", initializer_list<value_type> il) ;
리턴값은 새로 추가된 첫번째 엘리먼트의 위치
std::deque<int> myq ;
for (int i=1; i<6; i++) myq.push_back(i); // 1 2 3 4 5
std::deque<int>::iterator it = myq.begin() ; // it point 1
++it ; // next position ; it point 2
it = myq.insert(it, 10) ; // 1 10 2 3 4 5
myq.insert(it, 2, 20); // 1 20 20 10 2 3 4 5
+erase
지정된 위치 또는 범위를 삭제.
리턴값은 삭제된 범위에 처음 오게 될 요소의 위치.
myq.erase( myq.begin()+3) ;
myq.erase( myq.begin(), myq.begin()+3) ;
'Develop > C&CPP' 카테고리의 다른 글
Numerics library (0) | 2018.06.21 |
---|---|
Preprocessor (0) | 2018.06.20 |
stack / queue (0) | 2018.06.12 |
cstring (0) | 2018.06.11 |
thread mutex (0) | 2018.06.10 |