gpt4 book ai didi

C++ std::pair代码理解

转载 作者:行者123 更新时间:2023-11-28 02:43:05 26 4
gpt4 key购买 nike

所以我正在查看描述 std::pair 代码的讲义。下面是代码:

template <class U, class V>
struct pair {
U first;
V second;
pair(const U& first = U(), const V& second = V()) :
first(first), second(second) {}
};
template <class U, class Y>
pair<U, V> make_pair(const U& first, const V& second);

我试图理解这段代码,但我遇到了问题,特别是在结构中的线对处。我知道我们存储两个根据各自的类创建两个变量 first 和 second 。

在 pair 函数的参数中,我看到我们创建了一个新类 UV 并将它们分别分配给 firstsecond,但我不清楚 const U& 是如何工作的,因为 & 符号。更令人困惑的是在函数声明之后使用了一个冒号,这是我以前从未在 C++ 中看到过的。

我也不明白下面声明 first(first)second(second) 的行,尤其是括号。 first 不是一个类型,那么我们如何才能从 first 调用函数呢?

最佳答案

我们将通过将其分成几部分来解决这个问题。

U& 意味着我们正在传递一个 U 类型的变量,它将被引用使用——构造函数使用的变量是同一个变量(相同的内存地址和作为参数给出的值)。通过说 const U& first = U() 我们 promise 不会更改传递给构造函数的 first (const ... ),我们希望通过引用获取 first (...U&...),如果我们不提供 first我们应该使用 U 的默认构造函数 (... = U()) 提供的构造函数。有关引用的更多信息,this page应该有帮助。

first(first) 是“构造函数初始化列表”的一部分 - 在构造函数中初始化类成员变量的首选方法。我们告诉构造函数我们正在用参数 初始化名为 first (first(...)) 的 pair 的成员变量first 由构造函数提供(我们之前讨论过的 U&)。有关构造函数初始化列表的更多信息,this page应该有帮助。

关于C++ std::pair代码理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25291520/

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