배열과 같이 하드코딩된 요소를 사용하여 std::벡터를 초기화하는 방법
하드코딩된 요소 목록을 사용하여 std::Vector 초기화 배열을 초기화하는 단순함에 비해 번거로워 보일 수 있습니다. 일반적인 접근 방식은 push_back()을 사용하여 요소를 벡터에 반복적으로 푸시하는 것입니다. 그러나 배열 초기화의 간결한 구문을 반영하는 더 우아한 솔루션이 있습니까?
C 11의 우아한 솔루션
컴파일러가 C 11을 지원하는 경우 대답은 다음과 같습니다. 예. {}:
<code class="cpp">std::vector<int> v = {1, 2, 3, 4};</code>
으로 묶인 요소 목록을 사용하여 std::Vector를 직접 초기화할 수 있습니다. 이 구문은 배열 초기화를 모방하고 루프나 push_back()이 필요하지 않습니다.
이전 컴파일러를 위한 대안
C 11을 지원하지 않는 컴파일러의 경우 대체 방법이 있습니다:
Boost.Assign 라이브러리:
Boost.Assign 라이브러리는 다음 구문을 사용하여 벡터를 초기화하는 편리한 방법을 제공합니다.
<code class="cpp">#include <boost/assign/list_of.hpp> std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);</code>
연산자 오버로드:
=를 오버로드할 수 있습니다. 벡터를 초기화하는 연산자:
<code class="cpp">#include <boost/assign/std/vector.hpp> using namespace boost::assign; std::vector<int> v; v += 1, 2, 3, 4;</code>
이 방법은 직접 초기화에 비해 약간의 성능 오버헤드가 있으므로 성능이 중요한 코드에는 적합하지 않습니다.
위 내용은 루프 없이 특정 요소를 사용하여 std::벡터를 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!