有人可以用 C++ 解释 { } 容器吗

Can someone explain { } container in c++

谁能解释一下 C++ 中的 {}。 它用于所有容器。 例如。

我通常用它来使像 set 或 vector 这样的容器为空。

我对使用多个值的最小/最大函数感到困惑。

vector<int> v = {1,2,3,4,5};
int a = min(v) // doesn't work.
int b = min({1,2,3,4,5}) // works and gives accurate answer.

std::minstd::max 都有一个重载 std::initializer_list,它可以像 {1,2,3,4,5}.

这样从 braced-init-list 构造

min(v) 不起作用,因为没有超载 std::vector.

因为 C++11 STL 容器像 std::vectorstd::list 可以是默认构造函数 list-initialized from braced-init-list too; when being initialized from empty one (i.e. {}) they would be value-initialized。对于非空的 braced-init-list,它们将由采用 std::initializer_list.

的重载构造函数初始化

std::min that takes an std::initializer_list 过载。正是这个重载用于

int b = min({1,2,3,4,5});

要获取通用可迭代容器的最小元素,您需要使用 std::min_element:

int a = std::min_element(begin(v), end(v));

对于最大值,请视情况使用 std::maxstd::max_element