问题 See the following code: std::vector<int> v1{1, 2, 3}; std::vector<int> v2 = {1, 2, 3}; My questions are: Is there a difference between the two? I know the first one must be list initialization, but how about the second? Because there is a assign sign for the second, it makes me think that the compiler will use the std::initializer_list to create a temporary vector first, then it use copy constructor to copy the temp vector to v2 . Is this the fact? 回答1: The two (direct-list-initialization vs