gpt4 book ai didi

c++ - 使用 decltype 初始化容器

转载 作者:行者123 更新时间:2023-11-27 23:56:34 25 4
gpt4 key购买 nike

当我取消引用容器的迭代器时(例如 *v.begin()),我总是得到对包含类型的引用。然后,我无法使用 decltype 来初始化另一个容器。

int main()
{
vector<int> a;
vector<decltype(*a.begin())> b;
return 0;
}

我该如何解决?

最佳答案

选择 1:

声明b 的最简单方法是使用decltype(a) 作为容器类型。

decltype(a) b;

选择 2:

声明 b 的下一个间接级别是使用 decltype(a)::value_type 作为包含的类型。

std::vector<decltype(a)::value_type> b;

选择 3:

声明 b 最迂回的方法是使用 std::remove_reference 从取消引用的迭代器中移除引用。

std::vector<std::remove_reference<decltype(*a.begin())>::type> b;

关于c++ - 使用 decltype 初始化容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42263620/

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