std::basic_string_view<CharT,Traits>::copy
cppreference.net에서 가져옴
size_type copy( CharT* dest, size_type count, size_type pos = 0 ) const;
|
(C++17부터) (C++20부터 constexpr) |
|
부분 문자열 [pos, pos + rcount) 을(를) dest 이 가리키는 문자 배열로 복사합니다. 여기서 rcount 은(는) count 와 size() - pos 중 더 작은 값입니다.
이는 Traits::copy(dest, data() + pos, rcount) 와 동일합니다.
매개변수
| dest | - | 대상 문자열을 가리키는 포인터 |
| count | - | 요청된 부분 문자열 길이 |
| pos | - | 첫 번째 문자의 위치 |
반환값
복사된 문자 수.
예외
std::out_of_range 만약 pos > size ( ) 인 경우.
복잡도
rcount
에 대해 선형적입니다.
예제
이 코드 실행
#include <array> #include <cstddef> #include <iostream> #include <stdexcept> #include <string_view> int main() { constexpr std::basic_string_view<char> source{"ABCDEF"}; std::array<char, 8> dest; std::size_t count{}, pos{}; dest.fill('\0'); source.copy(dest.data(), count = 4); // pos = 0 std::cout << dest.data() << '\n'; // ABCD dest.fill('\0'); source.copy(dest.data(), count = 4, pos = 1); std::cout << dest.data() << '\n'; // BCDE dest.fill('\0'); source.copy(dest.data(), count = 42, pos = 2); // ok, count -> 4 std::cout << dest.data() << '\n'; // CDEF try { source.copy(dest.data(), count = 1, pos = 666); // throws: pos > size() } catch (std::out_of_range const& ex) { std::cout << ex.what() << '\n'; } }
출력:
ABCD BCDE CDEF basic_string_view::copy: __pos (which is 666) > __size (which is 6)
참고 항목
| 부분 문자열을 반환합니다 (공개 멤버 함수) | |
| 문자를 복사합니다 ( std::basic_string<CharT,Traits,Allocator>의 공개 멤버 함수)
| |
(C++11) |
요소의 범위를 새 위치로 복사합니다 (함수 템플릿 & 알고리즘 함수 객체) |
(C++20)(C++20) |
|
| 하나의 버퍼를 다른 버퍼로 복사합니다 (함수) |