注册 登录
编程论坛 C++教室

在向量类模板遇到的小问题

冷月·葬花魂 发布于 2018-04-25 11:27, 1638 次点击
--------------------Configuration: 向量类模板 - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/向量类模板.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

向量类模板.exe - 2 error(s), 0 warni
求大神解决
4 回复
#2
rjsp2018-04-25 11:58
unresolved external symbol _main
说的是 你的代码中缺少 int main( void ) 函数
#3
冷月·葬花魂2018-04-29 19:09
回复 2楼 rjsp
我写了main函数啊
#4
Jonny02012018-04-30 10:52
回复 3楼 冷月·葬花魂
代码贴上来看一下
#5
冷月·葬花魂2018-05-08 19:13
主函数:
#include"vector.h"
#include<iostream.h>
template<class Iterator>//在指定范围内输出元素
int main()
{
    return 0;
}
头文件中:
#ifndef VECTOR_H
#define VECTOR_H
#include<iostream.h>
#include<stdlib.h>
template<class T>
class Vector
{
    private:
        
        T*data;//指向动态数组指针
        int size;//数组的数据元素个数
        int max;//数组容量
        void Error(const char*cs)const{cout<<cs<<endl;exit(1);}//错误信息报告
    public:
        enum{SPACE_MAX=16};
        explicit Vector(int n=0):size(0),max(n+SPACE_MAX)
        {
            if(max>0)
            data=new T[max];
        }
        Vector(const Vector&v):data(NULL),max(0){operator=(v);}//复制构造函数
        ~Vector(){delete[]data;}
        Vector&operator=(const Vector<T>&v);//复制赋值函数
        T&operator[](int id){return data[id];}//下标运算符函数
        const T&operator[](int id)const{return data[id];}//常量型下标运算符函数
        bool Empty()const{return size==0;}//判空
        int Size()const{return size;}//求数据个数
        int Max()const{return max;}//求数组容量
        void Clear(){size=0;}//清空删除所有数据元素

        typedef T*iterator;//迭代器
        typedef const T*const_iterator;//const型迭代器
        const_iterator Begin()const{return data;}
        iterator Begin(){return data;}//返回左边界的指针,return &data[0]
        iterator End(){return data+size;}//返回右边界的指针,return &data[size]
        const_iterator End()const{return data+size;}

        const T& Front()const{return data[0];}//返回首元素的引用
        T& Front(){return data[0];}
        const T& Back()const{return data[siza-1];}//返回尾元素的引用
        T& End(){return data[size-1];}
        void Push_back(const T&item){data[size++]=item;}//尾插。相当于InsertRear
        void Pop_back(){size--;}//尾删
        void Reserve(int newMax);//扩大数组容量为newMax,保留原来数据
        void Resize(int newSize,const T& item=T());
        //add the numbers of database to newsize,store the old one,the rest of data is item
        iterator Insert(iterator itr,const T& item);//在迭代器interator的位置上插入item
        iterator Erase(iterator itr);//在迭代器iterator的位置上删除元素
};
template<class T>
Vector<T>&Vector<T>::operator=(const Vector<T>&v)//复制赋值函数
{
    if(max!=v.Max())
    {
        delete[]data;
        max=v.max;
        data=new T[max];
    }
    size=v.size();
    for(int i=0;i<size;++i)
        data[i]=v.data[i];
    return *this;
}
#endif
1