C++ C++;从指针到指针的新指针?

C++ C++;从指针到指针的新指针?,c++,pointers,new-operator,C++,Pointers,New Operator,我有一个模板链接列表,我想动态创建“头”指针 我似乎无法使用任何语法。。我最好的猜测是: linkedList<int>** ptr; ptr = new (linkedList<int>*)[1]; linkedList**ptr; ptr=new(linkedList*)[1]; 但它不起作用。我是相当新的C++,所以任何帮助都是赞赏!谢谢 要获取指针,请执行以下操作: T* ptr = new T; T** ptrptr = new T*; 其中T是您的类型

我有一个模板链接列表,我想动态创建“头”指针

我似乎无法使用任何语法。。我最好的猜测是:

linkedList<int>** ptr;
ptr = new (linkedList<int>*)[1];
linkedList**ptr;
ptr=new(linkedList*)[1];
但它不起作用。我是相当新的C++,所以任何帮助都是赞赏!谢谢

要获取指针,请执行以下操作:

T* ptr = new T;
T** ptrptr = new T*;
其中
T
是您的类型。
对于指向指针的指针,请执行以下操作:

T* ptr = new T;
T** ptrptr = new T*;
为一个指针分配空间,仍然需要像第一个方法一样填充:

*ptrptr = new T;

现在您得到了指向指针的有效指针。

通常,链接列表的标题看起来像:

node<int> *head = NULL;
insert(node<int> *&list, int value) { 
// insert new node containing `value` at head of `list`.

    node<int> *temp = new node(value);

    temp->next = list;
    list=temp;
}
node<int> *list = NULL;

for (int i=0; i<10; i++)
    insert(list, i);

您不使用std::list有什么原因吗?(或标准::转发列表)

检查STD::列表,或最近的C++图书,或事实上的头文件 cppreference.com


您的链表类模板应该有一个返回列表标题的函数。看一下STD::清单::在编译器的C++库中开始()。迭代器类型是指向列表中任何内容的指针。(即T*)

但我不确定链接的应用程序是否真的需要指针数组 列表中,对于刚刚创建的
new
construct,将编译以下表格

ptr = new (linkedList<int>*[1]);
ptr=new(linkedList*[1]);
编辑
这将分配指针数组:

linkedList<int>** ptr = new (linkedList<int>*[1]);
linkedList**ptr=new(linkedList*[1]);
这将分配阵列:

linkedList<int>* ptr = new linkedList<int>[1];
linkedList*ptr=newLinkedList[1];
这将分配一个元素:

linkedList<int>* ptr = new linkedList<int>;
linkedList*ptr=新建linkedList;

Yo dawg,我们听说你喜欢指针,所以我们将你的指针指向一个指针,这样你可以在指向东西的同时指向东西。遗憾的是,我的数据结构类不允许使用std。使用STL数据结构会破坏数据结构类的用途-在使用STL时,您没有了解各种结构的实现。@RageD:虽然我怀疑,但当我回答时,家庭作业标签不存在。出于这个原因,我特别呼吁研究代码。当然,学习链表模板的引用接口是在数据结构类中花费时间的一种很有价值的方法。是的,这是一个作业。我的想法是,我有一个带有ItemType linkedList*的AVL树,表示链接列表的头部。我正在尝试将节点插入AVL树,每个节点都有自己的新linkedList*头。我不允许修改AVL树源代码,因此我必须以某种方式启动并维护每个AVL树节点的链接列表。然而,由于我是在while循环中填充我的AVL树,我的指针要么因为作用域而被删除(如果在循环中定义的话),要么我只有一个指针,它被设置为每个AVL节点的头。构建在AVL树节点中的链表实际上不会有太大变化(如果有的话)。主要问题是我必须以
AVLmyTree的形式声明AVL树。因此,我无法将具体节点编程到AVL树中。我一直在猜测如何使用AVL Tree
bool insert(string,linkedList*)
从本质上实现相同的效果。当我尝试上面建议的代码时,我的对象会出现强制转换/赋值错误。。我需要在类T的定义中为T*创建构造函数吗?这似乎与我需要的完全一样,但cygwin中的g++抱怨:
错误:无法在赋值中将“linkedList**”转换为“linkedList*”。
我只需要一个“新的”空指针插入AVL树。数组符号只是我最好的猜测。是类似于
ptr=new(linkedList*)的东西可能吗?我试过了,不是。。但有什么相似的吗?谢谢就我所看到的错误而言,
ptr
new
表达式的类型似乎不匹配。请看编辑后的答案。