C++/Library
2021. 3. 19. 19:35
initializer_list
C++11
<initializer_list>
라이브러리- 라이브러리 버전에 따라
<iostream>
라이브러리에 들어가 있을 수도, 아닐 수도 있다고 한다.
- 라이브러리 버전에 따라
[]
연산자를 사용할 수 없다.foreach
문은 내부적으로 iterator를 사용한다.내부적으로 iterator를 사용하는
foreach
문으로 반복문을 구성하면 된다.#include <iostream> //#include <initializer_list> class IntArray { unsigned len_ = 0; int* data_ = nullptr; public: IntArray(unsigned length) : len_(length) { data_ = new int[len_]; } IntArray(const std::initializer_list<int>& list) : IntArray(list.size()) { int count = 0; for (auto& e : list) { data_[count] = e; ++count; } } ~IntArray() { delete[] data_; } friend std::ostream& operator << (std::ostream& out, const IntArray& arr) { for (unsigned i = 0; i < arr.len_; ++i) { out << arr.data_[i] << ' '; } return out; } }; int main() { using namespace std; auto il = { 10, 20 , 30 }; // std::initializer_list<int> IntArray arr1{ il }; cout << arr1 << endl; IntArray arr2 = { 1, 2, 3, 4, 5 }; cout << arr2 << endl; } /* stdout 10 20 30 1 2 3 4 5 */
'C++ > Library' 카테고리의 다른 글
C++ reference_wrapper (0) | 2021.03.21 |
---|---|
C++ IntArray (0) | 2021.03.19 |
C++ chrono (0) | 2021.03.16 |
C++ assert (0) | 2021.03.12 |
C++ vector (0) | 2021.03.12 |