gpt4 book ai didi

c++ - 如何最好地访问 std::pair 的元素?

转载 作者:太空狗 更新时间:2023-10-29 22:56:09 27 4
gpt4 key购买 nike

在使用 std::pair 时,我遇到了两种不同的方法来访问它的元素。由于它们似乎都有效且有效,我想知道它们之间有什么区别以及哪种方法是首选方法?

std::pair<int, int> p(1,1); // can be of any type.
int i1 = p.first; // first approach
int i2 = std::get<0>(p); // second approach

最佳答案

如果在给定的应用程序中,pair0 不是文字而是参数,请使用 get:

template<class... T> auto sum0(const T&... t) {
return (std::get<0>(t)+...);
}

template<int i> auto sqrAt(const std::pair<int,double> &p) {
const auto v=std::get<i>(p);
return v*v;
}

如果 pair0 按字面意思出现,使用 .first 出于可读性原因显然更可取(包括它表示有意识地使用std::pair):

template<class M>
void addKeys(M &m) {
for(auto &kv : m) kv.second+=kv.first;
}

关于这个函数的一切都表明了与 std::mapstd::unordered_map 的预期用途,尽管唯一的类型被命名为 void<,但它非常可读.

关于c++ - 如何最好地访问 std::pair 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48945280/

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