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中的列表初始化提供了一种统一且简洁的初始化语法,可以用于数组、容器以及类对象的初始化。它不仅使代码更加清晰,还有助于防止一些初始化时的错误。