leetcode刷题的时候看到了,觉得比较有意思就记录一下吧。
return { };
复制列表初始化(Copy-list-initialization)
先来看段代码。
vector<int>Return(vector<int>nums)
{
if (!nums.empty()&&nums.size()>2)
{
return {nums[1],nums[2]};
}
}
其中“ return {nums[1],nums[2]}; ”这里涉及到了复制列表初始化。列表初始化简单来说就是用花括号“{}”去初始化一个对象。
当然,除了复制列表初始化,还有直接列表初始化(Direct-list-initialization)。这两个概念顾名思义,直接列表初始化就是直接给列表特定的值;复制列表初始化侧重的是将一个已有列表的值去初始化另一个列表。相当于“无中生有”和“有中生有”的对比。
放完整代码的C++代码方便测试。
完整代码
#include <iostream>
#include <vector>
using namespace std;
vector<int>Return(vector<int>nums)
{
if (!nums.empty()&&nums.size()>2)
{
return {nums[1],nums[2]};
}
}
void Show(vector<int>nums)
{
for (int i = 0; i < nums.size(); i++)
{
cout << nums[i]<<" ";
}
cout << endl;
}
int main()
{
vector<int>nums;
for (int i = 0; i < 3; i++)
{
nums.push_back(i+1);
}
cout << "Vector Size=" << nums.size() << endl;
Show(nums);
Show(Return(nums));
}
输出示例
