Witam,
mam za zadanie napisać szablon dla grafu. Mam problem, gdyż potrzebuję iteratora na wektor węzłów w grafie, ale wektor ten przechowuje elementy Node<typWęzła>, czego nie chce przepuścić kompilator.
Konkretnie:
template<class edgeType, class nodeType>
void graph<edgeType, nodeType>::addNode(int _nodeID, nodeType _nodeValue) throw (const char*)
{
vector< Node<nodeType> >::const_iterator nodeIter = nodes.begin(); // TU JEST BŁĄD !!
Node<nodeType> newNode;
newNode.nodeID = _nodeID;
newNode.value = _nodeValue;
nodes.push_back(newNode);
}
Przy kompilowaniu dostaję:
[...]graph.cpp|12|error: expected ';' before 'nodeIter'
Szablon klas graph i node:
template<class edgeType, class nodeType>
class graph {
vector< Node<nodeType> > nodes;
...
};
template<class nodeType>
class Node {...};
Jest jakiś sposób, aby to obejść? Gdy np. wpisuję
vector< Node<int> >::const_iterator nodeIter;
to się kompiluje...