#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;
}
问题出在主函数第一行,求解大佬怎么改??
问题一大推,我修改了一下。
自己写的嘛, 之家 LIST容器啊
追问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 返回值类型 函数模板名(形参列表) { …… }。调用时,函数模板名(实参); 如果类型参数可以通过实参判断,传递的类型可以省略。类模板的语法是:...