为什么向量的数据类型在C+中的尖括号内声明+;? 我对C++中的数据类型声明感到困惑。通常,它的编写方式类似于-inta表示变量a是整数数据类型。但是对于向量类型的数组,它写为-vector-vectorname为什么需要这样做?是因为向量就像C++中的一个类吗?我查看了以下讨论相关主题的链接:
这些链接讨论了尖括号在模板声明中的作用,我理解并知道这一点。我无法得到关于为什么这些对向量是必要的问题的答案。每当你在C++中看到类似为什么向量的数据类型在C+中的尖括号内声明+;? 我对C++中的数据类型声明感到困惑。通常,它的编写方式类似于-inta表示变量a是整数数据类型。但是对于向量类型的数组,它写为-vector-vectorname为什么需要这样做?是因为向量就像C++中的一个类吗?我查看了以下讨论相关主题的链接:,c++,vector,C++,Vector,这些链接讨论了尖括号在模板声明中的作用,我理解并知道这一点。我无法得到关于为什么这些对向量是必要的问题的答案。每当你在C++中看到类似之类的东西时,那就是模板。模板就像一个“配方”,可以用来在编译时生成另一段代码。或者换句话说,T(通常是一种类型,如int或string)只是一个参数,与C或任何其他语言中的函数具有参数的方式相同。但在C++中,这些参数在编译时被评估,因此一旦程序被构建,它们就不需要执行。 < P>从类模板指定的类型名称 STD::vector < /代码>或其他容器将指定使用什
T
(通常是一种类型,如int
或string
)只是一个参数,与C或任何其他语言中的函数具有参数的方式相同。但在C++中,这些参数在编译时被评估,因此一旦程序被构建,它们就不需要执行。 < P>从类模板指定的类型名称<代码> STD::vector < /代码>或其他容器将指定使用什么类型的数据,然后在编译时生成代码。您应该指定要在尖括号或模板参数内使用的数据类型
vect4
的类型将与其他实例的类型完全相同,即std::vector
或内部std::vector
std::vector
是类模板。尖括号中的东西是它的参数。你说你理解并知道这一点,那么还有什么是不清楚的?我想你需要开始阅读。“为什么这是必要的?”也许不是,但还没有人知道。如果没有尖括号,你会怎么写呢?std::vector
和其他容器一样;它需要一个模板参数来指定其元素的类型。@IgorTandetnik:我知道这是用于在尖括号中定义泛型数据类型的模板。只要向编译器传递了任何值,编译器就会根据传递给模板函数的值自动分配数据类型。这与向量的特性非常不同。我们正在声明一个固定的数据类型-integer/double/float,那么为什么要将其作为模板呢?它可以像数组一样被设计和声明。我相信这是有原因的,这就是我想理解的。约翰,谢谢你的简单回答。那么,我们是否不需要为数组使用类似的声明语法,因为向量是模板,数组不是?如果是,那么要知道所有这些预定义模板是否有我可以参考的列表?@AGOEL“是否有我可以参考的列表?”@AGOEL:在C++中数组实际上有一个类似的语法:std::array arr代码>。请注意,10
在编译时用于执行C在您说intarr[10]时所做的操作代码>@JohnZwinck:谢谢分享。你能解释一下什么时候更喜欢你提到的声明语法(使用尖括号)而不是语法:inta[10];在C++中?如果有什么我应该先读的,请让我知道。@AGOEL:你应该使用std::array-arr
intarr[10]更具特色代码>。