Vector:Return{ }

返回一个vector

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));
}

输出示例

Subscribe
提醒
0 评论
Inline Feedbacks
View all comments
0
在此留下你的评论x