C++缺少类模板list的参数列表??

#include<iostream>
using namespace std;
class node{
public:
int data;
node*prior;
node*next;
};
enum error_code{
success
};
template<typename elementype>
class list{
private:
int count;
node*head;
public:
list();
~list();
int length()const;//求长度
bool get_element(const int i, int &x)const;//按序号取元素
node *locate(const int x)const;//搜索
bool insert(const int i, const int x);//插入;
bool delete_element(const int i);
node *get_head(){ return head; }
void inverse();

list::list(){
head = new node;
head->prior=head->next = head;
count = 0;
}
int list::length()const{
return count;
}
bool list::get_element(const int i, int &x)const{
node *p = head->next;
int j = 1;
while(p !=head&&j != i){
p = p->next; j++;
}
if (p == head){ return false };
x = p->data;
return true;
};
node * list::locate(const int x)const{
node *p = head->next;
while (p != head){
if (p->data == x)return p;
else p = p->next;
}
return head;
}
bool list::insert(const int i, const int x){
if (count = 0){ node*q = new node;
q->prior = head; head->next = q; q->next = head; head->prior = q;
q->data = x; count = 1; return true;
}
node *p = head; int j = 0;
while (j != i&& p != head){
p = p->next; j++
}
if (i<1 || i>count + 1)return false;
node *s = new node;
s->prior - p->prior;
s->next = p;
p->prior = s;
s->prior->next = s;
s->data = x;
count++;
return true;
}
bool list::delete_element(const int i){
node *p = head->next;int j = 0;
while (j != i - i && p!=head){
p = p->next; j++;
}
if (i<1 || i>count)
return false;
p->prior->next = p->next;
p->next->prior = p->prior;
delete p;
count--;
return true;
}
list::list(){
while (count != 0){
delete_element(1);
}
}
void list::inverse(){
node *s = new node;
node *p = head;
for (int i = 0; i <= count;i++){
s->prior = p->prior;
s->next = p - next;
p->prior = s->next;
p->next = s->prior;
p = p->prior;
}
};
};
int main(){
list data1;
int x;
node *q;
for (int i = 1; i <= 10; i++) {
data1.insert(i, rand() % 100 + 1);
data1.get_element(i, x);
cout << x << " " << data1.locate(x) << " ";
}
cout << endl;
data1.inverse();
for (int j = 1; j <= 10; j++){
data1.get_element(j, x);
cout << x << " " << data1.locate(x) << " ";
}
cout << endl;
return 0;
}
问题出在主函数第一行,求解大佬怎么改??

#include<iostream>
using namespace std;
class node{
public:
    int data;
    node*prior;
    node*next;
};

enum error_code{
success
};
template<typename elementype>
class list{
        private:
        int count;
        node*head;
        public:
        list();
        ~list();
        int length()const;//求长度
        bool get_element(const int i, int &x)const;//按序号取元素
        node *locate(const int x)const;//搜索
        bool insert(const int i, const int x);//插入;
        bool delete_element(const int i);
        node *get_head(){ return head; }
        void inverse();

list::list()    //  list();
    {
            head = new node;
            head->prior=head->next = head;
            count = 0;
        }

    int list::length()const   // int length()const;//求长度
    {
    return count;
    }

bool list::get_element(const int i, int &x)const  // bool get_element(const int i, int &x)const;//按序号取元素
{
    node *p = head->next;
    int j = 1;
    while(p !=head&&j != i)
        {
            p = p->next; j++;
       }
        if (p == head){ return false };
        x = p->data;
        return true;
}


node * list::locate(const int x)const   //  node *locate(const int x)const;//搜索
{
        node *p = head->next;
        while (p != head){
        if (p->data == x)
            return p;
        else
        p = p->next;
        }
        return head;
}


bool list::insert(const int i, const int x)  //  bool insert(const int i, const int x);//插入;
   {
        if (count == 0)
            { node*q = new node;
             q->prior = head;
              head->next = q;
              q->next = head;
              head->prior = q;
              q->data = x;
              count = 1; return true;
    }


    bool insert(const int i, const int x);//插入;
   {

 {

    node *p = head; int j = 0;
    while (j != i&& p != head)
    {
         p = p->next; j++
   }
   if (i<1 || i>count + 1)
    return  false;
        node *s = new node;
        s->prior - p->prior;
        s->next = p;
        p->prior = s;
        s->prior->next = s;
        s->data = x;
        count++;
        return true;
}
   }


    bool list::delete_element(const int i)  //  bool delete_element(const int i);
  {
    node *p = head->next;
    int j = 0;
    while (j != i - i && p!=head)
        {
          p = p->next; j++;
      }
    if (i<1 || i>count)
    return false;
    p->prior->next = p->next;
    p->next->prior = p->prior;
    delete p;
    count--;
    return true;
    }


    list::list()  //  list();
    {
        while (count != 0){
        delete_element(1);
    }
    }


void list::inverse() // void inverse();
{
        node *s = new node;
        node *p = head;
        for (int i = 0; i <= count;i++)
        {
            s->prior = p->prior;
            s->next = p - next;
            p->prior = s->next;
            p->next = s->prior;
            p = p->prior;
        }
}


    int main()
    {
            list data1;
            int x;
            node *q;
    for (int i = 1; i <= 10; i++)
    {
        data1.insert(i, rand() % 100 + 1);
        data1.get_element(i, x);
        cout << x << " " << data1.locate(x) << " ";
    }
    cout << endl;
    data1.inverse();
    for (int j = 1; j <= 10; j++){
    data1.get_element(j, x);
    cout << x << " " << data1.locate(x) << " ";
    }
    cout << endl;
    return 0;
    }

问题一大推,我修改了一下。

自己写的嘛, 之家 LIST容器啊

追问

这是怎么回事呢??加了也不对,不加也不对TAT

温馨提示:内容为网友见解,仅供参考
无其他回答

C++缺少类模板list的参数列表??
= 0){ delete_element(1); } }void list::inverse() \/\/ void inverse();{ node *s = new node; node *p = head; for (int i = 0; i <= count;i++) { s->prior = p->prior; s->next = p - next; p->prior = s->next; p->next ...

为什么C++程序会出现缺少类模板的参数列表?
{ pair1<int> my(100, 75);\/\/要用<int>实例化模板 cout<<my.getmax()<<endl;return 0;}

c++程序出错:缺少 类模板 "std::complex" 的参数列表
模板必须带类型参数 不能单独出现complex,必须complex<TYPE>

请C++高手指导 IntelliSense: 缺少 类模板 "std::iterator" 的参数列...
std::vector<char>::iterator q; \/\/char替换成你需要的参数类型,q替换成你的迭代器名,不在前面在using,写在main函数前面,试试看

C++模板List.Add的参数类型应该怎样定义?
第一种为副本传递,实际接收到的是实参的副本。第二种是引用传递,实际参数必须是可修改的变量。可以尝试下下面的形式 void add(const T & item){ this->buffer[n]=item;...}

...c++,出现链接问题undefined reference to `LList<TelBook>::LList...
错误上面说 找不到你LList这个模板类的实现啊 问题在你的#include"LList.h" 上啊 你的LList 是否没定义默认构造函数呢?你贴的代码有限,有可能是你LList定义了带参数的构造函数忘记定义默认构造函数了

...class template requires template argument list
在每个类函数的实现前 加上 template<typename T> 如还有问题 ,请提出。

树型结构类(模板) C++ 紧急求解!!!
template <class 类型形参> 函数返回值类型 类模板名称<类型形参>::函数名(函数参数列表){ ...\/\/函数体 } 这里只是定义了类模板,如果你在主函数里没有实例化这个类模板,编译器是不会去编译这个类模板的,你必须,举个例子,这样来实例化 list<int> a;然后,调用a的成员函数get,就OK了...

c++模板类问题
你好,看了你的代码!你这是定义了个模板类Complex; 其内部有一个成员函数为:运算符重载函数。其函数体定义在类的外部,从函数来看应该是(实部+虚部)。错在第12行,成员函数(模板函数)的外部定义。改为 template<class type> \/\/ 就是这里错误。Complex<class type>改为 template<class type>...

C++模板和模板的特化,模板的扩展
模板的分类包括函数模板和类模板。函数模板是带类型参数的函数,支持类型推断;而类模板则是带类型参数的类,不支持类型推断。函数模板的语法是:template 返回值类型 函数模板名(形参列表) { …… }。调用时,函数模板名(实参); 如果类型参数可以通过实参判断,传递的类型可以省略。类模板的语法是:...

相似回答