Thursday, July 9, 2009

C++ STL - deque?

Is there a way to declare a deque inside a deque of a certain class?





Example:


deque%26lt;deque%26lt;class%26gt;%26gt; doesn't work :(

C++ STL - deque?
#include %26lt;deque%26gt;


#include %26lt;string%26gt;


#include %26lt;iostream%26gt;





using namespace std;





int main( int argc, char* argv[] )


{


deque%26lt; deque%26lt;string%26gt; %26gt; doubleDeck;





deque%26lt; string %26gt; singleDeckA;


deque%26lt; string %26gt; singleDeckB;





singleDeckA.push_back("King of Hearts");


singleDeckA.push_back("Queen of Hearts");


singleDeckA.push_back("Jack of Hearts");





singleDeckB.push_back("King of Spades");


singleDeckB.push_back("Queen of Spades");


singleDeckB.push_back("Jack of Spades");





doubleDeck.push_back( singleDeckA );


doubleDeck.push_back( singleDeckB );





deque%26lt; deque%26lt;string%26gt; %26gt;::iterator ddit;


ddit = doubleDeck.begin();


while( ddit != doubleDeck.end() )


{


deque%26lt;string%26gt;::iterator it = ddit-%26gt;begin();


while( it != ddit-%26gt;end() )


{


cout %26lt;%26lt; *it++ %26lt;%26lt; endl;


}


ddit++;


}


}





The above code produced this output. It seems to


work.





[714] answers: g++ -Wall main1.cpp


[716] answers: ./a.out


King of Hearts


Queen of Hearts


Jack of Hearts


King of Spades


Queen of Spades


Jack of Spades


[717] answers:





Judging from how you defined it in your example, you may


have hit the "%26gt;%26gt;" quirk in templates. Try "%26gt; %26gt;". The compiler


gripes at you since "%26gt;%26gt;" is a streaming operator.


No comments:

Post a Comment