gpt4 book ai didi

C++ 模板化 STL 容器

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

我是 C++ 新手,我主要是想弄清楚我是否可以使用 STL 容器作为模板来存储传递给它的任何类型。我不知道我是否需要使用类模板或定义一个独特的结构或什么。

这基本上是我所拥有的,以及一些关于我想要实现的目标的评论:

std::deque<template class T> messages; <--- ???

//the goal being not to store ANY type in this deque, but to somehow
//template it for each type that needs to be stored
//e.g. a different deque for an int, bool, ADT, etc.

template<class T> bool StoreMessage(T const &messageToStore){
messages<T>.push_back(messageToStore);
}

我什至不知道如何处理这个问题,或者这是否可能,但我真的不想为需要存储的每种类型编写函数,因为有一个 很多。或者使用无效*。出于安全考虑,我也不想这样做,而且我仍然必须明确定义如何处理每种类型,即使过程将完全相同。

谢谢大家!

最佳答案

容器已经模板化了,所以你想做的可能是这样的:

template <typename T>
bool store_message(const T &message, std::deque<T> &container) {
container.push_back(message);
}

要调用它,通过引用传递容器和元素:

std::deque<int> numbers;
int el = 5;

store_message(el, numbers);

关于C++ 模板化 STL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37468406/

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