gpt4 book ai didi

c++ - 这个 C++ 函数如何返回两个值?

转载 作者:行者123 更新时间:2023-12-03 11:15:02 31 4
gpt4 key购买 nike

请解释这个函数如何返回两个值。它正在获取一个数组并从数组中返回两个数字,其和等于目标和。

class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int a = 0;
int b = 0;
for (int i=0; i<nums.size()-1; i++)
{
for (int j=i+1; j<nums.size(); j++)
{
if (nums[i] + nums[j] == target)
{
a = i;
b = j;
}
}
}
return {a, b};
}
};

最佳答案

类(class)std::vector有一个带有模板特化的第一个参数的构造函数std::initializer_list<T>并且相应地接受一个初始化列表。

vector(initializer_list<T>, const Allocator& = Allocator());

这样的构造函数称为initializer-list构造函数

因此,当在 return 语句中使用了相同类型的对象的花括号列表时,编译器会尝试将此花括号列表用作构造函数的参数,该构造函数接受初始化列表来构建指定返回的返回对象输入。

实际上,在后台使用了以下操作:

std::vector<int> temporary_object = { a, b };

所以函数只返回一个 std::vector<int> 类型的对象(容器) (函数的返回类型)包含两个 int 类型的元素.

关于c++ - 这个 C++ 函数如何返回两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66100823/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com