gpt4 book ai didi

c++ - 通配符 vector 模板

转载 作者:太空宇宙 更新时间:2023-11-04 14:57:32 24 4
gpt4 key购买 nike

我必须根据用户输入创建特殊类型的 vector 。例如用户必须选择是要创建整数 vector 还是字符串 vector 。是否可以预定义一个 vector 并在一个例子中清楚地定义它?开关盒?

类似于:

vector<WILDCARD> vec;
switch(input) {
case 1:
vec = vector<int>()...
break;

case 2:
vec = vector<string>()....
break;
....

最佳答案

Is it possible to predefine a vector and define it clearly in a e.g. switch-case?

没有。 C++ 是一种静态类型语言。这意味着,必须在编译时知道每个变量的类型,并且一旦知道,以后就不能更改 - 即使在编译时也不行。所以你在做什么是不可能的。

如果要给用户选择类型。然后您可以在每个 case 中定义所有可能选择的变量,并使用用户选择的变量,如下所示:

switch(input) {
case 1:
{
std::vector<int> vec;
//work with vec which is vector of int!
}
break;
case 2:
{
std::vector<std::string> vec;
//work with vec which is vector of string!
}
break;
//....

或者,如果您担心代码重复,那么您可以这样做:

template<typename T>
void Work()
{
std::vector<T> vec;
//work with vec of type T
}

switch(input) {
case 1:
Work<int>();
break;
case 2:
Work<std::string>();
break;
//....

关于c++ - 通配符 vector 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872469/

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