STL deque 의 emplace 방법(12)
public member function
std::deque::emplace
template <class... Args>
iterator emplace (const_iterator position, Args&&... args);
Construct and insert element
The container is extended by inserting a new element at position. This new element is constructed in place using args as the arguments for its construction.
지정 한 위치 에 새로운 요 소 를 삽입 하여 용 기 를 확장 합 니 다.새로운 요소 의 값 은 매개 변수 args 를 사용 하여 요소 에 전달 하 는 구조 기 구 조 를 사용 합 니 다.
This effectively increases the container size by one.
이것 은 용기 의 크기 를 효율적으로 늘 리 는 방법 이다.
Double-ended queues are designed to be efficient performing insertions (and removals) from either the end or the beginning of the sequence. Insertions on other positions are usually less efficient than in list or forward_list containers. See emplace_front and emplace_back for member functions that extend the container directly at the beginning or at the end.
2 단 대기 열 디자인 은 시작 과 끝 에 요 소 를 효율적으로 삽입 하고 삭제 할 수 있 도록 하 는 것 입 니 다.다른 위치 에 요 소 를 삽입 하면 보통 list 와 forward 를 표현 합 니 다.리스트 가 더 나 빠.
The element is constructed in-place by calling allocator_traits::construct with args forwarded.
Parameters
position
Position in the container where the new element is inserted.
Member type const_iterator is a random access iterator type that points to a constant element.
새 요소 가 삽 입 된 위치 입 니 다.
args
Arguments forwarded to construct the new element.
새로운 요 소 를 구성 하 는 매개 변수.
Return value
An iterator that points to the newly emplaced element.
새 요 소 를 삽입 한 교체 기 를 되 돌려 줍 니 다.
Member type iterator is a random access iterator type that points to an element.
교체 기 는 무 작위 접근 교체 기 에 속한다.
The storage for the new element is allocated using allocator_traits
재분배 가 발생 하면 용기 의 분배 기 를 사용 하여 메모리 분 배 를 합 니 다.이것 은 이상 을 던 질 수 있 습 니 다.(예 를 들 어 allocator 라 는 기본 분배 기 는 요청 이 실 패 했 을 때 bad 를 던 집 니 다.알 로 크 이상)
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// deque::emplace #include <iostream> #include <deque> int main () { std::deque<int> mydeque = {10,20,30}; auto it = mydeque.emplace ( mydeque.begin()+1, 100 ); mydeque.emplace ( it, 200 ); mydeque.emplace ( mydeque.end(), 300 ); std::cout << "mydeque contains:"; for (auto& x: mydeque) std::cout << ' ' << x; std::cout << '
'; return 0; }
Edit & Run
Output:
mydeque contains: 10 200 100 20 30 300
Complexity
Depending on the particular library implemention, up to linear in the number of elements between position and one of the ends of thedeque.
Iterator validity
If the insertion happens at the beginning or the end of the sequence, all iterators related to this container are invalidated, but pointers and references remain valid, referring to the same elements they were referring to before the call.
If the insertion happens anywhere else in the deque, all iterators, pointers and references related to this container are invalidated.
Data races
The container is modified. If the insertion happens at the beginning or the end of the sequence, no contained elements are accessed (although see iterator validity above). If it happens anywhere else, it is not safe to concurrently access elements.
Exception safety
If position is begin or end, there are no changes in the container in case of exception (strong guarantee). Otherwise, the container is guaranteed to end in a valid state (basic guarantee). If allocator_traits::construct is not supported with the appropriate arguments, or if position is not valid, it causes undefined behavior.
——————————————————————————————————————————————————————————————————
//번역 이 좋 지 않 은 부분 은 많이 지도 해 주시 기 바 랍 니 다.아래 에 메 시 지 를 남기 거나 왼쪽 위 에 있 는 메 일 주 소 를 클릭 하여 저 에 게 메 일 을 보 내 주 셔 서 제 잘못 과 부족 을 지적 하여 제 가 수정 하고 더 잘 공유 할 수 있 도록 해 주 셔 서 감사합니다.
//앞으로 의 번역 은 간결 함 을 위주 로 하고 그 주요 의 미 를 번역 하 며 중복 율 이 너무 높 은 것 도 번역 하지 않 고 중요 한 부분 만 번역 할 것 입 니 다.
전재 출처 를 밝 혀 주 십시오:http://blog.csdn.net/qq844352155 author:천하무쌍
Email:[email protected]
2014-9-1
우 GDUT
——————————————————————————————————————————————————————————————————
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 원자로 작동먼저 전연 두 갈래 나무의 정의를 살펴보자. 만약에 두 갈래 나무의 깊이를 h로 설정하면 h층을 제외한 다른 각 층(1~h-1)의 결점은 모두 최대 개수에 달하고 h층의 모든 결점은 연속적으로 맨 왼쪽에 집중된다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.