gpt4 book ai didi

c++ - 如何从模板中获取容器的类型(例如 int、double 等)? C++

转载 作者:行者123 更新时间:2023-11-28 03:15:39 25 4
gpt4 key购买 nike

我正在尝试创建一个 C++-Printing-Function,它通过复制算法和之前的用户定义 header 打印任何 STL 容器。

我的问题是,我必须通过复制算法打印它,所以我需要 ostream_iterator(“ostream_iterator”)的模板类型?

如何获取模板后面的容器类型

(我用 typeid(cont) 试过了,但没用 - 谢谢!

 template<typename Container>
void HeaderPrint(Container cont, std::string header = "" )
{
std::cout << header << std::endl;
copy(cont.begin(),cont.end(), ostream_iterator<typeid(cont)>(cout," "));
std::cout << std::endl;
}

最佳答案

标准库容器用容器类型定义value_type:

copy(cont.begin(),cont.end(), ostream_iterator<typename Container::value_type>(cout," "));

如果您正在使用自己的容器类,最好也使用此约定:

template <typename T>
class MyContainer
{
public:
typedef T value_type;
....
};

关于c++ - 如何从模板中获取容器的类型(例如 int、double 等)? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16992570/

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