std::vector<T,Allocator>:: assign
|
void
assign
(
size_type count,
const
T
&
value
)
;
|
(1) | (constexpr since C++20) |
|
template
<
class
InputIt
>
void assign ( InputIt first, InputIt last ) ; |
(2) | (constexpr since C++20) |
|
void
assign
(
std::
initializer_list
<
T
>
ilist
)
;
|
(3) |
(since C++11)
(constexpr since C++20) |
컨테이너의 내용을 교체합니다.
[
first
,
last
)
.
|
이 오버로드는
|
(C++11 이전) |
|
이 오버로드는
|
(C++11 이후) |
모든 반복자(
end()
반복자 포함)와 요소에 대한 모든 참조가 무효화됩니다.
목차 |
매개변수
| count | - | 컨테이너의 새로운 크기 |
| value | - | 컨테이너 요소를 초기화할 값 |
| first, last | - | 복사할 요소들의 소스 범위 를 정의하는 반복자 쌍 |
| ilist | - | std::initializer_list 에서 값을 복사할 |
복잡도
예제
다음 코드는
assign
을 사용하여 여러 문자를
std::
vector
<
char
>
에 추가합니다:
#include <vector> #include <iostream> #include <string> int main() { std::vector<char> characters; auto print_vector = [&]() { for (char c : characters) std::cout << c << ' '; std::cout << '\n'; }; characters.assign(5, 'a'); print_vector(); const std::string extra(6, 'b'); characters.assign(extra.begin(), extra.end()); print_vector(); characters.assign({'C', '+', '+', '1', '1'}); print_vector(); }
출력:
a a a a a b b b b b b C + + 1 1
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2209 | C++98 |
대체 작업이 기존 모든 요소를 삭제한 후
주어진 요소를 삽입하는 방식으로 구현되어야 했음 |
해당 요구사항을
제거함 |
참고 항목
|
(C++23)
|
컨테이너에 값들의 범위를 할당합니다
(public member function) |
|
컨테이너에 값을 할당합니다
(public member function) |