c++-一个C++编译问题(数组实现的线性表),提示错误 Lnk2019,Lnk1120,具体在下,谢谢大家

问题描述

一个C++编译问题(数组实现的线性表),提示错误 Lnk2019,Lnk1120,具体在下,谢谢大家

错误:
1>example2_1.obj : error LNK2001: 无法解析的外部符号 "void __cdecl reverse(class SqListClass &)" (?reverse@@YAXAAV?$SqListClass@H@@@Z)
1>E:TP算法算法导论练习测试listDebuglist.exe : fatal error LNK1120: 1 个无法解析的外部命令
代码

template
class SqListClass //顺序表类
{
T *data; //存放顺序表中元素
int length; //存放顺序表的长度
public:
SqListClass(); //构造函数
~SqListClass(); //析构函数
void CreateList(T *str,int n); //由str中的元素建立顺序表
void DispList(); //输出顺序表L中所有元素
int ListLength(); //求顺序表的长度
bool GetElem(int i, T &e); //求顺序表中某序号的元素值
int LocateElem(T e); //按元素值查找其序号
bool ListInsert(int i, T e); //插入数据元素
bool ListDelete(int i); //删除数据元素
//其他例子友元函数
friend void reverse(SqListClass &L);
friend bool Delaelem(SqListClass &L,T x);
friend void Merge2(SqListClass &L1,SqListClass &L2,SqListClass &L3);
};

//.................................
#include "list.h"
#include
using namespace std;
const int MaxSize=100; //顺序表的大小

//-----------------顺序表的基本运算算法--------------------------------
template
SqListClass::SqListClass() //构造函数
{
data=new T[MaxSize]; //为data分配长度为MaxSize的空间
length=0; //初始时置length为0
}
template
SqListClass::~SqListClass() //析构函数
{
delete [] data; //释放空间
}
template
void SqListClass::CreateList(T a[],int n) //由a中的元素建立顺序表
{ int i;
for (i=0; i
data[i]=a[i]; //将a的每个元素存放到data元素中
length=i;
}
template
void SqListClass::DispList() //输出顺序表中所有元素
{ int i;
if (length > 0)
{
for (i=0; i
cout
cout
}
}
template
int SqListClass::ListLength() //求顺序表的长度
{
return length;
}
template
bool SqListClass::GetElem(int i, T &e) //求顺序表中某序号的元素值
{ if (i < 1 || i > length)
return false; //参数错误时返回false
e=data[i - 1]; //取元素值
return true; //成功找到元素时返回true
}
template
int SqListClass::LocateElem(T e) //按元素值查找其序号
{ int i=0;
while (i < length && data[i]!=e)
i++; //查找元素e
if (i>=length) //未找到时返回0
return 0;
else
return i + 1; //找到后返回其逻辑序号
}
template
bool SqListClass::ListInsert(int i, T e) //插入数据元素
{ int j;
if (ilength+1)
return false; //参数错误时返回false
for (j=length; j>=i; j--) //将data[i-1]及后面元素后移一个位置
data[j]=data[j-1];
data[i-1]=e; //插入元素e
length++; //顺序表长度增1
return true; //成功插入返回true
}
template
bool SqListClass::ListDelete(int i) //删除数据元素
{ int j;
if (ilength) //参数错误时返回false
return false;
for (j=i-1; j<length-1; j++) //将data[i]之后的元素前移一个位置
data[j]=data[j+1];
length--; //顺序表长度减1
return true; //成功删除返回true
}

//.................................................................................
#include "list.cpp"
template
void reverse(SqListClass &L)
{ int i;
T tmp;
for (i=0;i
{ tmp=L.data[i];
L.data[i]=L.data[L.length-i-1];
L.data[L.length-i-1]=tmp;
}
}
void main()
{
int n=6;
int a[]={1,2,3,4,5,6};
SqListClass L; //建立元素类型为int的顺序表对象L
cout << "创建顺序表L" << endl;
L.CreateList(a,6);
cout << "顺序表L:" ;
L.DispList();
cout << "逆置顺序表L" << endl;
reverse(L);
cout << "顺序表L:";
L.DispList();
cout << "销毁顺序表L" << endl;
system("pause");
}

解决方案

对应函数实现的代码有没有一起编译进来

解决方案二:

你那个T模板内容是啥。。。

时间: 2024-10-06 06:46:41

c++-一个C++编译问题(数组实现的线性表),提示错误 Lnk2019,Lnk1120,具体在下,谢谢大家的相关文章

新手求教:一个搜索功能 调试说在DataAdapter.Fill()方法那错误 代码请进来看 谢谢帮忙!

问题描述 调试错误显示:System.Data.OleDb.OleDbException:ORDERBY子句语法错误错误行:da.Fill(ds,starnum,pagesize,"content");PS:da为OleDbDataAdapterda=newOleDbDataAdapter();ds为DataSetds=newDataSet();starnum为从开始查找的页数intstarnum=(pagenum-1)*pagesize;pagenum是前面开始用数据绑定定义的.就是

一个关于指针和数组的问题

问题描述 一个关于指针和数组的问题 #define _CRT_SECURE_NO_WARNINGS#include ""stdlib.h""#include ""stdio.h""#include ""string.h"" int main(){ char buf1[100] = { 0 }; char buf2[100] = { 0 }; char *p1 = buf1; char *

php一个解析字符串排列数组的方法

  本文实例讲述了php一个解析字符串排列数组的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?php $str="1|苹果|30 1|桃子|50 1|普通|10 2|小麦|100 2|玉米|35 2|大米|30 3|电脑|5 3|MP3|121 3|打印机|8"; $strArray=explode("n",$str); /*关键的是下面的代码*

全显示成正数-安卓开发中如何使一个byte类型的数组内的数据不显示成负数

问题描述 安卓开发中如何使一个byte类型的数组内的数据不显示成负数 在做Android开发的时候一个byte类型的数组result,里面有比较大的正数,需要做什么样的处理才能使他显示的全是正数:求大神指导,给个代码 byte[] result for (int i = 0; i < result.length; i++) Log.e("读出全部page", "byte " + i + " is " + result[i]); 解决方案 f

java数组-一个数组可以看成一个类吗,数组当中的每一个元素可以看成一个对象吗

问题描述 一个数组可以看成一个类吗,数组当中的每一个元素可以看成一个对象吗 一个数组可以看成一个类吗,数组当中的每一个元素可以看成一个对象吗 解决方案 数组是一种数据类型,数组中的每个元素类型取决于它的声明是什么类型,例如:String[],里面只能存放String类型的数据.Student[],里面只能存放Student类型的数据. 解决方案二: 数组是一个容器 ,你可是在里面放类 ,但它不是一个类 解决方案三: 不能,虽然数组里可以放很多东西,但它不是一个类.数组,就是相同数据类型的元素按一

一个标签从标签数组中取值方法实现

问题描述 一个标签从标签数组中取值的两种方法实现.一种方法是按标签出次的次数取值按出现.String[]add={"北京","上海","四川","四川","北京","四川"};"地址":"四川";还有一个方法是按权重进行显示String[]add={"北京","上海","四川","

java-Java中在同一个类中把一个方法中的数组元素传到另一个方法中,怎么传啊?麻烦大家说一下,谢谢了!

问题描述 Java中在同一个类中把一个方法中的数组元素传到另一个方法中,怎么传啊?麻烦大家说一下,谢谢了! Java中在同一个类中把一个方法中的数组元素传到另一个方法中,怎么传啊?麻烦大家说一下,谢谢了! 麻烦大家了 解决方案 直接作为参数传就是了 void f1() { int[] x = {1,2,3,4,5}; f2(x[1]); } void f2(int n) { } 解决方案二: Spring AOP代理机制以及方法调用在同一个类的另一个方法的问题 解决方案三: 可以使用全局变量的方

结构体数组-C++中一个很奇怪的数组

问题描述 C++中一个很奇怪的数组 static const AP_Scheduler::Task scheduler_tasks[] PROGMEM = { { ins_update, 1, 1000 }, { one_hz_print, 50, 1000 }, { five_second_call, 250, 1800 }, }; 注:AP_Scheduler是一个类,Task是这个类的结构体成员,一下是Task的定义: struct Task { task_fn_t function; u

百度面试题:求一个已排序的数组中绝对值最小的元素

题目为: 有一个已经排序的数组(升序),数组中可能有正数.负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4. 这一题该如何求呢? 初步的解决思路是:     1.数组中的元素全为正,取最左边的数字:     2.数组中的元素全为负,取最右边的数字的绝对值:     3.数组中有正数有负数,就用二分法查找,判断中间元素的符号        a)中间元素为