Deque迭代程序错误
Deque Iterator Error
我有一个用于二进制搜索树实现的BinNode<Elem>
类。
当我初始化以下内容时:deque< BinNode<Elem>* >::const_iterator iter = n.begin();
我收到一个错误,告诉我deque<>之后应该有冒号。
deque是否不支持模板参数中的模板参数,或者这是某种不同的错误?
下面是函数的一个片段:
template <class Key, class Elem, class KEComp, class EEComp>
void BST<Key, Elem, KEComp, EEComp>::
printBranchesHelp(int branchLen, int nodeSpaceLen, int startLen, int nodesInThisLevel, const deque< BinNode<Elem>* >& n, ostream& out)
{
deque< BinNode<Elem>* >::const_iterator iter = n.begin();
for (int i = 0; i < nodesInThisLevel / 2; i++)
{
out << ((i == 0) ? setw(startLen-1) : setw(nodeSpaceLen-2)) << "" << ((*iter++) ? "/" : " ");
out << setw(2*branchLen+2) << "" << ((*iter++) ? "\" : " ");
}
out << endl;
}
由于deque< BinNode<Elem>* >::const_iterator
是一个依赖名称,因此需要使用typename
关键字显式地将其标识为类型:
typename deque< BinNode<Elem>* >::const_iterator iter = n.begin();
您可能想看看这个问题,以更好地理解从属名称以及为什么需要使用typename
。
如果你发现自己经常需要这种类型,我建议你为它写一个别名或typedef:
using deque_iterator = typename deque< BinNode<Elem>* >::const_iterator;
或者在C++11中,您可以回避这个问题,使用auto
:
auto iter = n.begin();
相关文章:
- 程序崩溃并显示"std::out_of_range"错误
- xmake总是报告:错误:无法获取cxx的程序,为什么
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 分段错误当我试图运行程序时出错
- 显示错误输出的简单数组排序程序
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 为什么程序在 c++ 中迭代 emtpy 向量时会抛出运行时错误
- 在气泡排序程序中未声明错误功能
- 我在c ++矩阵计算器程序中找不到错误
- 叮当格式化程序多行格式配置错误
- 全局向量导致 C++ 程序结束时出现段错误
- 运行时间错误:程序跳过提示,以获取第二名和第三个名称
- Glibc 2.7 配置错误程序太旧
- 运行时错误:程序已停止响应
- OpenCV for Android:在 PATH 中找不到错误程序"sh"
- C++中的 scanf 错误 - 程序没有响应
- c++语法错误:程序以非零状态退出
- 运行时错误C++程序:检测到glibc,munmap_chunk(),指针无效
- libxml2错误程序c++