gpt4 book ai didi

c++ - 容器和容器内容类型C++的模板

转载 作者:行者123 更新时间:2023-12-02 09:51:42 25 4
gpt4 key购买 nike

我本质上想要

template <typename Container, typename T>
void copy(Container<T> &A, const Container<T> &B)
{
(copy contents from B to A) ...
}
但是afaik,这是不可能做到的。明智的用法是,它将复制 vector<int> A, B(例如)的内容,但也适用于 list<float> A, B
因此,单个功能将适用于不同类型的容器以及各自容器的不同数据类型。

最佳答案

您需要将Container设置为template template parameter:

template <template<typename...> typename Container, typename T>
Container<T> copy(Container<T> A, Container<T> B)
{
// (copy contents from B to A) ...
}

或者,您可以简单地编写:
template <typename Container>
Container copy(Container A, Container B)
{
// (copy contents from B to A) ...
}
如果不需要显式命名元素类型 T。无论如何,您仍然可以通过执行 Container::value_type来获得此类型。

关于c++ - 容器和容器内容类型C++的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64054243/

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