【发布时间】:2020-08-09 18:01:38
【问题描述】:
argument list for class template "std::iterator" is missing
我在这个场合遇到了这个错误:
for(std::iterator it = deque.begin(); it != deque.end(); it++)
所以我想到了以这样的模板方式指定:
for(std::iterator<sf::RectangleShape> it = deque.begin(); it != deque.end(); it++)
然后我得到不同的错误:
expected a declaration
我对这里发生的事情有点困惑。我只需要迭代器,因为这样我就可以到达std::deque 的最后一个元素并将其设置为不同的矩形颜色。
提前致谢。
【问题讨论】:
-
您是否遵循建议使用
std::iterator这样的指南? -
C++ 比较复杂,你应该阅读一些学习资料(最好是good book)。只是有想法,然后当它们不起作用时会感到困惑,这不会让你走得太远。一本书会教你语言背后的原则。
-
我同意 C++ 很复杂,但我正在尝试学习我可以上网的内容。然而,买一本书是我在不久的将来可能会做的事情。 @约翰
-
我在 encppreference 上找到的所有内容,如果这就是你所说的“指南”,我可以像这样声明它
std::iterator iteratorName任何示例代码的声明方式都不是我想要的。例如,我知道使用字符串有std::string::iterator,这使得 EDIT 正如我在其他答案中看到的那样,这让事情变得更容易,与我想要完成的事情类似的情况也是如此。 . -
@logoslavikus 我想知道 cppreference 在哪里可以声明
std::iterator iteratorName,因为这是不正确的。 cppreference 通常非常可靠(尽管并非真正针对初学者)。