C++11中如何初始化一个数组或容器?请给出示例代码。

在C++11中,可以使用统一的初始化语法(也称为列表初始化)来初始化数组或容器。这种语法使用花括号 {} 来包含初始化元素。

初始化数组:

int arr[] = {1, 2, 3, 4, 5}; // 初始化一个整型数组

std::array<int, 5> stdArr = {1, 2, 3, 4, 5}; // 使用std::array初始化数组

初始化容器:

std::vector<int> vec = {1, 2, 3, 4, 5}; // 初始化一个std::vector

std::map<std::string, int> wordCount = {
    {"hello", 1},
    {"world", 2}
}; // 初始化一个std::map

std::set<int> numSet = {1, 2, 3, 4, 5}; // 初始化一个std::set

初始化复杂容器:

std::vector<std::pair<std::string, int>> vecOfPairs = {
    {"one", 1},
    {"two", 2},
    {"three", 3}
}; // 初始化一个包含std::pair的std::vector

初始化类对象:
如果类有一个适当的构造函数,也可以使用列表初始化来初始化类的对象。

class Point {
public:
    Point(int x, int y) : x(x), y(y) {}
private:
    int x, y;
};

Point p = {1, 2}; // 使用列表初始化来初始化Point对象

总的来说,C++11中的列表初始化提供了一种统一且简洁的初始化语法,可以用于数组、容器以及类对象的初始化。它不仅使代码更加清晰,还有助于防止一些初始化时的错误。

发表评论

后才能评论