我在编译它时创建了这个squareList类我给了我许多错误我不知道有人可以帮我解决这些错误 更新:我在〜square_list(){}之后注释我的所有代码,并且每个错误都指向列表数据;
///#include "LinkedList.hpp"
#include <vector>
#include <cassert>
#include <iostream>
#include <iomanip>
#include <math.h>
#include <list>
#include <iterator>
template <typename T_>
class square_list
{
typedef T_ value_type;
typedef std::size_t size_type;
typedef T_ & reference;
typedef T_ const & const_reference;
typedef T_ * pointer;
typedef T_ const * const_pointer;
typedef T_ * iterator;
typedef T_ const * const_iterator;
typedef std::ptrdiff_t difference_type;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
//for header vector<pair<itr,unsindINT) header
list<T_> data;
square_list() {}
~square_list(){}
// bool empty(){
// if(this->begin() == nullptr && this->end() == nullptr)
// return 1;
// else
// return 0;
//}
//list<value_type>::iterator begin() {
// return data.begin();
//}
//list<value_type>::iterator end() {
// return data.end();
//}
};
错误1错误C2143:语法错误:缺少';'在'&lt;'之前 错误4错误C2143:语法错误:缺少';'在'&lt;'之前 错误7错误C2143:语法错误:缺少';'在'&lt;'之前 错误10错误C2143:语法错误:缺少';'在'&lt;'之前 错误13错误C2143:语法错误:缺少';'在'&lt;'之前 错误16错误C2143:语法错误:缺少';'在'&lt;'之前 错误19错误C2143:语法错误:缺少';'在'&lt;'之前 错误22错误C2143:语法错误:缺少';'在'&lt;'之前 错误25错误C2143:语法错误:缺少';'在'&lt;'之前 错误28错误C2143:语法错误:缺少';'在'&lt;'之前 错误31错误C2143:语法错误:缺少';'在'&lt;'之前 错误34错误C2143:语法错误:缺少';'在'&lt;'之前 错误37错误C2143:语法错误:缺少';'在'&lt;'之前 错误40错误C2143:语法错误:缺少';'在'&lt;'之前 错误43错误C2143:语法错误:缺少';'在'&lt;'之前 错误46错误C2143:语法错误:缺少';'在'&lt;'之前 错误3错误C2238:';'之前的意外令牌错误6错误 C2238:';'之前的意外令牌错误9错误C2238: ';'之前的意外令牌错误12错误C2238:意外 ';'之前的令牌错误15错误C2238:意外的令牌 在';'之前错误18错误C2238:前面的意外令牌 ';'错误21错误C2238:';'之前的意外标记 错误24错误C2238:';'之前的意外标记 错误27错误C2238:';'之前的意外标记 错误30错误C2238:';'之前的意外标记 错误33错误C2238:';'之前的意外标记 错误36错误C2238:';'之前的意外标记 错误39错误C2238:';'之前的意外标记 错误42错误C2238:';'之前的意外标记 错误45错误C2238:';'之前的意外标记 错误48错误C2238:';'之前的意外令牌错误2错误 C4430:缺少类型说明符 - 假定为int。注意:C ++没有 support default-int错误5错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int错误8错误C4430: 缺少类型说明符 - 假设为int。注意:C ++不支持 default-int错误11错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int错误14错误C4430: 缺少类型说明符 - 假设为int。注意:C ++不支持 default-int错误17错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int错误20错误C4430: 缺少类型说明符 - 假设为int。注意:C ++不支持 default-int错误23错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int错误26错误C4430: 缺少类型说明符 - 假设为int。注意:C ++不支持 default-int错误29错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int错误32错误C4430: 缺少类型说明符 - 假设为int。注意:C ++不支持 default-int错误35错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int错误38错误C4430: 缺少类型说明符 - 假设为int。注意:C ++不支持 default-int错误41错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int错误44错误C4430: 缺少类型说明符 - 假设为int。注意:C ++不支持 default-int错误47错误C4430:缺少类型说明符 - int 假定。注意:C ++不支持default-int
答案 0 :(得分:1)
#include <vector>
#include <cassert>
#include <iostream>
#include <iomanip>
#include <math.h>
#include <list>
#include <iterator>
using namespace std;
#define nullptr NULL
template <typename T_>
class square_list
{
public:
typedef T_ value_type;
typedef std::size_t size_type;
typedef T_ & reference;
typedef T_ const & const_reference;
typedef T_ * pointer;
typedef T_ const * const_pointer;
typedef T_ * iterator;
typedef T_ const * const_iterator;
typedef std::ptrdiff_t difference_type;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
//for header vector<pair<itr,unsindINT) header
list<value_type> data;
square_list() {}
~square_list(){}
bool empty(){
if(this->begin() == nullptr && this->end() == nullptr)
return 1;
else
return 0;
}
/*list<T_>::iterator begin() {
return data.begin();
}
list<T_>::iterator end() {
return data.end();
}*/
};
int main()
{
square_list<int> sq_list;
return 0;
}
答案 1 :(得分:0)
第一个问题是这一行
list<T> data<T>;
应该是
list<T> data;
这些模板参数是不必要的,语法上无效。此外,您尚未定义模板参数T
。您的意思是T_
(或value_type
更确切地说)吗?
此外,typename
和begin()
方法的返回类型需要end()
,因为value_type
是从属类型:
typename list<value_type>::iterator begin();
typename list<value_type>::iterator end();
您甚至可以利用退货类型扣除:
auto begin() -> decltype(data.begin());
auto end() -> decltype(data.end());
答案 2 :(得分:0)
您的模板参数是T_
,但您指的是未定义的名为T
的内容。尝试更改
list<T> data<T>;
到
list<T_> data;
另外,尝试在类声明和编译中注释掉所有内容。然后一次取消注释一行,并处理添加每一行后出现的任何错误。
答案 3 :(得分:0)
list<value_type> data;
代码的问题是缺少std::
如下:
std::list<value_type> data;
您还要在课程定义之前编写using namespace std;
。