【问题标题】:boolean declaration for a template模板的布尔声明
【发布时间】:2015-01-11 22:13:45
【问题描述】:

我的数据类型是顶点 V,我将它用作模板。

vector<Vertex*>* Graph::path(Vertex* v1, Vertex* v2)
{
Vertex* temp;
queue<Vertex*>* q;
q->push(v1);
bool *visited = new bool[v1];
}

最后一行显示错误,要求仅输入整数参数。如何改进??

【问题讨论】:

  • q 是指向队列的指针,而不是队列的实例。请实例化一个队列!

标签: c++ templates vector boolean


【解决方案1】:

您不能在 new bool[v1] 中输入指针 - 用于赋值。您需要一个整数值(如 3,4 等)或具有适当整数右值的左值,例如int c= 5; int s[] = new int[c];。这是非常简单的句法行为准则。

【讨论】:

  • 我想为我的顶点创建一个指针来设置访问。不定义新函数怎么办
  • @YashJain 你必须明白这一点——你的v1v2Vertex 对象指针,它甚至不是int 指针。要执行bool* visited = new bool[v1],您必须将 v1 作为int。例如,如果您有 v1 = 5,它会起作用。即使您将 v1 作为指向整数值的指针,例如int *v1 = 5,您可以使用 bool *visited = new bool[*v1],其中 *v1 是 v1 指向的值(即 5)。我不知道您对 C/C++ 中的指针了解多少。另外,我不明白您所说的“为我的顶点访问的集合”是什么意思。您如何使用*visited
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2015-05-23
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
相关资源
最近更新 更多