Вот взялся за изучение STL по статьям на вашем сайте.
Компилятор MSVS.NET2003. Догадываетесь в чём дело?
Значит так:
#include <iostream.h> //ругается
#include <stl.h> //ругается
int main ()
{
stack<list<int> > s;
s.push (42);
s.push (101);
s.push (69);
while (!s.empty ())
{
cout << s.top () << endl;
s.pop ();
}
return 0;
}
Покопался в MSDN, сделал так:
#include <iostream>
#include <stack>
using namespace std ;
int main ()
{
stack<list<int> > s;
s.push (42); // ругается
s.push (101); // ругается
s.push (69); // ругается
while (!s.empty ())
{
cout << s.top () << endl;
s.pop ();
}
return 0;
}
покопался ещё раз в MSDN и сделал так:
#include <stack>
#include <iostream>
using namespace std ;
int main()
{
stack<int> s;
s.push (42);
s.push (101);
s.push (69);
while (!s.empty ())
{
cout << s.top () << endl;
s.pop ();
}
return 0;
}
Ура!!! Заработало!
В чем же дело?
Статья: template <class Container> class stack ...
MSDN: template <class Type, class Container=deque<Type>>class stack...
Заметили разницу?
Так это к чему я?
Не каждый начинающий программист сможет проделать столь обширный аналитический анализ
(за противоречие этому я в своё время получил минус)
Может стоит дополнить статью или хотя бы пояснить столь большое расхождение в STL.
А то получается не статья, а "обрезок", "обрывок", нерабочая вешь не представляющая интереса для начинающих