std::inplace_vector<T,N>:: assign
From cppreference.net
<
cpp
|
container
|
inplace vector
|
constexpr
void
assign
(
size_type count,
const
T
&
value
)
;
|
(1) | (C++26부터) |
|
template
<
class
InputIt
>
constexpr void assign ( InputIt first, InputIt last ) ; |
(2) | (C++26부터) |
|
constexpr
void
assign
(
std::
initializer_list
<
T
>
ilist
)
;
|
(3) | (C++26부터) |
컨테이너의 내용을 대체합니다.
1)
내용을
count
개의
value
복사본으로 대체합니다.
2)
내용을 해당 범위에 있는 요소들의 복사본으로 대체합니다
[
first
,
last
)
.
만약
first
또는
last
가
*
this
에 대한 반복자인 경우, 동작은 정의되지 않습니다.
3)
내용을
ilist
의 요소들로 대체합니다.
| 이 섹션은 불완전합니다 |
목차 |
매개변수
| count | - | 컨테이너의 새로운 크기 |
| value | - | 컨테이너 요소를 초기화할 값 |
| first, last | - | 복사할 요소들의 소스 범위 를 정의하는 반복자 쌍 |
| ilist | - | std::initializer_list 에서 값을 복사할 |
복잡도
1)
count
에 선형적입니다.
2)
first
와
last
사이의 거리에 선형적으로 비례합니다.
3)
ilist.
size
(
)
에 선형적입니다.
예외
1-3)
삽입된 요소들의 초기화 과정에서 발생하는 모든 예외.
예제
다음 코드는
assign
을 사용하여 여러 문자를
std::
inplace_vector
<
char
,
5
>
에 추가합니다:
이 코드 실행
#include <inplace_vector> #include <iterator> #include <new> #include <print> int main() { std::inplace_vector<char, 5> chars; chars.assign(4, 'a'); // overload (1) std::println("{}", chars); const char extra[3]{'a', 'b', 'c'}; chars.assign(std::cbegin(extra), std::cend(extra)); // overload (2) std::println("{}", chars); chars.assign({'C', '+', '+', '2', '6'}); // overload (3) std::println("{}", chars); try { chars.assign(8, 'x'); // throws: count > chars.capacity() } catch(const std::bad_alloc&) { std::println("std::bad_alloc #1"); } try { const char bad[8]{'?'}; // ranges::distance(bad) > chars.capacity() chars.assign(std::cbegin(bad), std::cend(bad)); // throws } catch(const std::bad_alloc&) { std::println("std::bad_alloc #2"); } try { const auto l = {'1', '2', '3', '4', '5', '6'}; chars.assign(l); // throws: l.size() > chars.capacity() } catch(const std::bad_alloc&) { std::println("std::bad_alloc #3"); } }
출력:
['a', 'a', 'a', 'a'] ['a', 'b', 'c'] ['C', '+', '+', '2', '6'] std::bad_alloc #1 std::bad_alloc #2 std::bad_alloc #3
참고 항목
|
컨테이너에 값들의 범위를 할당합니다
(public member function) |
|
|
컨테이너에 값을 할당합니다
(public member function) |