c ++编程中的矢量类

时间:2010-09-16 18:37:07

标签: c++ templates vector

任何人都可以解释一下,矢量类的用途是什么?我的教授在讲座中提到了下面的句子。 模板:每个向量都有一个类参数,用于确定该实例将使用哪种对象类型,通常称为T.我不明白类参数究竟是什么意思?

4 个答案:

答案 0 :(得分:13)

C ++中的vector类型本质上是一个动态数组。 class参数是vector中元素的类型。例如

int arr[];  // Static C++ array with int elements
vector<int> v; // dynamic array with int elements

在此示例中,int是类参数类型。

修改

正如一些评论指出,老师选择“课堂参数”会产生误导。说“模板参数”更正确。

答案 1 :(得分:2)

矢量被定义为模板,如:

template<typename T>
class Vector;

要使用它,您需要实例化模板,如:

Vector<char> myVector;

实例化矢量有效地创建了一个新类。这相当于如果你用类参数替换模板定义中的每一个T都会得到的结果(在本例中为char)

所以,如果我们有一个简单的模板

template<typename T>
class DataHolder{ 
public:
 T data
}

实例化如下:

DataHolder<char> myChar;

相当于班级:

class DataHolder
{
public:
 char data;
}

答案 2 :(得分:1)

一个例子:

std::vector<int> v;

这声明vector(动态数组)int个元素。最初它包含零元素的空间。

Web包含许多有关基本C ++的资源。有关STL vector的更多信息,请参阅this page

答案 3 :(得分:0)