3. 유니폼 초기화

간단한 벡터를 만들고 그 안을 정수로 채우는 경우.

//c++03
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);

//c++11
vector<int> v2 {1, 2, 3, 4};

벡터 내부에 객체 타입의 데이터를 채워 넣어야 하는 경우.

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

class Person {
    private:
    int age;
    string name;

    public:
    Person(const int a, const string& n):age(a), name(n){ }
    int getAge() { return age; }
    string getName() { return name; }
};

int main(int argc, char **argv) {
    // c++03
    Person p1{20, "Tom"};
    Person p2{19, "Jane"};

    // c++11 유니폼 초기화
    vector<Person> vec {
        {21, "Smith"}, {39, "John"}, {23, "Mary"}, {45, "Ted"}
    };

    for_each(vec.begin(), vec.end(), [](Person p) {
        cout<<p.getAge()<<", "<<p.getName()<<endl;
    });
    return 0;
}