C++ 如何减少用户数据类型表示法?(typedef?)
我将库用于C++ 如何减少用户数据类型表示法?(typedef?),c++,syntax,C++,Syntax,我将库用于C++(大NUM)。 我使用2D数组(矩阵)。 例如: #define FOR(i,a,b) for(int (i)=(a); i<(b) ; ++(i)) #define Big ttmath::Big<2, 2> vector < vector < Big > > A(n); FOR(i, 0, n) A[i].resize(n); 我尝试使用typedef: typedef vector < vector < Big
C++
(大NUM)。
我使用2D数组(矩阵)。
例如:
#define FOR(i,a,b) for(int (i)=(a); i<(b) ; ++(i))
#define Big ttmath::Big<2, 2>
vector < vector < Big > > A(n);
FOR(i, 0, n)
A[i].resize(n);
我尝试使用typedef:
typedef vector < vector < Big > > Matrix;
typedef向量>矩阵;
但它没有编译
MS VS 2013:
error C2143: syntax error : missing ';' before '<'
错误C2143:语法错误:缺少“;”在“之前,去掉递归宏Big
,改用typedef
,如下所示:
typedef ttmath::Big<2, 2> Big_type;
typedef std::vector<std::vector<Big_type> > Matrix_type;
Marix_type A(n);
FOR(i, 0, n)
A[i].resize(n)
typedef ttmath::Big Big_type;
typedef std::向量矩阵_类型;
Marix_A型(n);
对于(i,0,n)
A[i]。调整大小(n)
错误消息是什么?您是否使用了名称空间std代码>之前?@cad错误C2143:语法错误:缺少“;”“以前”仍然有同样的问题<代码>错误C2143:语法错误:缺少“;”在“ttmath::Big”
之前,当然,我已经评论过在之前定义Big ttmath::Big
。我认为没关系,因为没有typedef
,一切都很好。啊哈,保罗,你的答案错了,我只是抄了下来!你输入了“typdef”,没有输入“e”。)现在它工作得很好。泰铢:)如果可能的话,你能解释一下“递归宏大”吗?我的案子发生了什么?很明显。仍然习惯于使用平板电脑:(宏不能是递归的,但如果它的名称出现在替换文本中会让人困惑。最好避免使用宏,因为像typedef
这样的语言功能会保留信息,而不是无意识地替换文本。
typedef ttmath::Big<2, 2> Big_type;
typedef std::vector<std::vector<Big_type> > Matrix_type;
Marix_type A(n);
FOR(i, 0, n)
A[i].resize(n)