【发布时间】:2011-07-14 06:04:22
【问题描述】:
嘿.. 我在做一些家庭作业时遇到了麻烦。
我们正在研究 VectorList(有点像链表,但有向量 - 不要问为什么..) 无论如何,我有这样的事情:
#ifndef VECTORLIST_H
#define VECTORLIST_H
#include <iostream>
#include <vector>
using namespace std;
template< typename NODETYPE >
class VectorList
{
public:
VectorList(); // constructor
~VectorList(); // destructor
void insertAtFront( const NODETYPE & );
void insertAtBack( const NODETYPE & );
bool removeFromFront( NODETYPE & );
bool removeFromBack( NODETYPE & );
bool isEmpty() const;
void print() const;
private:
vector< NODETYPE > *vList; // list data as a vector
};
我需要填写函数..我的问题是我不明白如何 当我有 *vList 时使用 STIL .. 它是指向第一个向量元素的指针?
// display contents of VectorList
template< typename NODETYPE >
void VectorList< NODETYPE >::print() const
{
// Fill in the missing code
}
我的想法是在向量上使用 for 循环并使用 cout<< vector[i]<< endl;
打印出矢量..
问题是我遇到各种错误和段错误。
我不明白如何访问函数中的向量, 以及如何访问其元素。
这是一个头文件,主要我们声明一个VectorList<NODETYPE> IntVector的对象...
那么我该怎么做呢?
任何有助于理解*vList 在这里如何发挥作用的帮助都会有很大帮助
我应该能够完成剩下的..
另外,对于isEmpty(),我假设我可以使用vList.empty().. 但是因为vList 是一个指针..
效果不太好。
== 对于构造函数/析构函数,我能做什么? 我知道对于析构函数,我应该遍历向量并在每个元素上使用 delete。 但是应该
请给我解释一下,我很沮丧=[
【问题讨论】:
-
添加了
homework标签但删除了printing标签,因为系统只允许5个标签。 -
永远不要在头文件中使用
using namespace声明,这将强制std命名空间进入您的所有用户,这可能会导致代码中的名称冲突。 -
几乎所有问题都来自尝试使用指向向量的指针。如果您将向量直接存储在您的类中,那么大多数其他事情都会起作用!
标签: c++ class templates function