A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FGeneric%2FGeneric_Stack</id>
		<title>C++/Generic/Generic Stack - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FGeneric%2FGeneric_Stack"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Generic/Generic_Stack&amp;action=history"/>
		<updated>2026-04-09T21:52:39Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Generic/Generic_Stack&amp;diff=838&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Generic/Generic_Stack&amp;diff=838&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Generic/Generic_Stack&amp;diff=839&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Generic/Generic_Stack&amp;diff=839&amp;oldid=prev"/>
				<updated>2010-05-25T10:24:00Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A generic stack that holds two values. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
#define SIZE 10&lt;br /&gt;
template &amp;lt;class StackType&amp;gt; class stack {&lt;br /&gt;
  StackType stck[SIZE][2]; &lt;br /&gt;
  int topOfStack;          &lt;br /&gt;
public:&lt;br /&gt;
  void init() { topOfStack = 0; } &lt;br /&gt;
  void push(StackType ob, StackType object2); &lt;br /&gt;
  StackType pop(StackType &amp;amp;object2); &lt;br /&gt;
};&lt;br /&gt;
template &amp;lt;class StackType&amp;gt;&lt;br /&gt;
void stack&amp;lt;StackType&amp;gt;::push(StackType ob, StackType object2)&lt;br /&gt;
{&lt;br /&gt;
  if(topOfStack==SIZE) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Stack is full.\n&amp;quot;;&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  stck[topOfStack][0] = ob;&lt;br /&gt;
  stck[topOfStack][1] = object2;&lt;br /&gt;
  topOfStack++;&lt;br /&gt;
}&lt;br /&gt;
template &amp;lt;class StackType&amp;gt; &lt;br /&gt;
StackType stack&amp;lt;StackType&amp;gt;::pop(StackType &amp;amp;object2)&lt;br /&gt;
{&lt;br /&gt;
  if(topOfStack==0) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Stack is empty.\n&amp;quot;;&lt;br /&gt;
    return 0; &lt;br /&gt;
  }&lt;br /&gt;
  topOfStack--;&lt;br /&gt;
  object2 = stck[topOfStack][1];&lt;br /&gt;
  return stck[topOfStack][0];&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  stack&amp;lt;char&amp;gt; stack1, stackObject2;&lt;br /&gt;
  int i;&lt;br /&gt;
  char ch;&lt;br /&gt;
  stack1.init();&lt;br /&gt;
  stackObject2.init();&lt;br /&gt;
  stack1.push(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;);&lt;br /&gt;
  stackObject2.push(&amp;quot;x&amp;quot;, &amp;quot;z&amp;quot;);&lt;br /&gt;
  stack1.push(&amp;quot;b&amp;quot;, &amp;quot;d&amp;quot;);&lt;br /&gt;
  stackObject2.push(&amp;quot;y&amp;quot;, &amp;quot;e&amp;quot;);&lt;br /&gt;
  stack1.push(&amp;quot;c&amp;quot;, &amp;quot;a&amp;quot;);&lt;br /&gt;
  stackObject2.push(&amp;quot;z&amp;quot;, &amp;quot;x&amp;quot;);&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Pop stack1: &amp;quot; &amp;lt;&amp;lt; stack1.pop(ch);&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; ch &amp;lt;&amp;lt; endl;&lt;br /&gt;
  }&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Pop stackObject2: &amp;quot; &amp;lt;&amp;lt; stackObject2.pop(ch);&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; ch &amp;lt;&amp;lt; endl;&lt;br /&gt;
  }&lt;br /&gt;
  // demonstrate double stacks&lt;br /&gt;
  stack&amp;lt;double&amp;gt; doubleValueStack1, doubleValueStack2;  // create two stacks&lt;br /&gt;
  double d;&lt;br /&gt;
  doubleValueStack1.init();&lt;br /&gt;
  doubleValueStack2.init();&lt;br /&gt;
  doubleValueStack1.push(1.1, 2.0);&lt;br /&gt;
  doubleValueStack2.push(2.2, 3.0);&lt;br /&gt;
  doubleValueStack1.push(3.3, 4.0);&lt;br /&gt;
  doubleValueStack2.push(4.4, 5.0);&lt;br /&gt;
  doubleValueStack1.push(5.5, 6.0);&lt;br /&gt;
  doubleValueStack2.push(6.6, 7.0);&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Pop doubleValueStack1: &amp;quot; &amp;lt;&amp;lt; doubleValueStack1.pop(d);&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot; &amp;quot;&amp;lt;&amp;lt; d &amp;lt;&amp;lt; endl;&lt;br /&gt;
  }&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Pop doubleValueStack2: &amp;quot; &amp;lt;&amp;lt; doubleValueStack2.pop(d);&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot; &amp;quot;&amp;lt;&amp;lt; d &amp;lt;&amp;lt; endl;&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==A generic stack that includes exception handling.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
#define SIZE 10&lt;br /&gt;
template &amp;lt;class StackType&amp;gt; class stack {&lt;br /&gt;
  StackType stck[SIZE]; &lt;br /&gt;
  int topOfStack;       &lt;br /&gt;
public:&lt;br /&gt;
  void init() { &lt;br /&gt;
     topOfStack = 0; &lt;br /&gt;
  } &lt;br /&gt;
  void push(StackType ch); &lt;br /&gt;
  StackType pop();         &lt;br /&gt;
};&lt;br /&gt;
template &amp;lt;class StackType&amp;gt;&lt;br /&gt;
void stack&amp;lt;StackType&amp;gt;::push(StackType ob)&lt;br /&gt;
{&lt;br /&gt;
  try {&lt;br /&gt;
    if(topOfStack==SIZE) throw SIZE;&lt;br /&gt;
  } catch(int) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Stack is full.\n&amp;quot;;&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  stck[topOfStack] = ob;&lt;br /&gt;
  topOfStack++;&lt;br /&gt;
}&lt;br /&gt;
template &amp;lt;class StackType&amp;gt; &lt;br /&gt;
StackType stack&amp;lt;StackType&amp;gt;::pop()&lt;br /&gt;
{&lt;br /&gt;
  try {&lt;br /&gt;
    if( topOfStack == 0) &lt;br /&gt;
      throw 0;&lt;br /&gt;
  } catch(int) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Stack is empty.\n&amp;quot;;&lt;br /&gt;
    return 0;              &lt;br /&gt;
  }&lt;br /&gt;
  topOfStack--;&lt;br /&gt;
  return stck[topOfStack];&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  stack&amp;lt;char&amp;gt; stack1, stack2;  &lt;br /&gt;
  int i;&lt;br /&gt;
  stack1.init();&lt;br /&gt;
  stack2.init();&lt;br /&gt;
  stack1.push(&amp;quot;a&amp;quot;);&lt;br /&gt;
  stack2.push(&amp;quot;x&amp;quot;);&lt;br /&gt;
  stack1.push(&amp;quot;b&amp;quot;);&lt;br /&gt;
  stack2.push(&amp;quot;y&amp;quot;);&lt;br /&gt;
  stack1.push(&amp;quot;c&amp;quot;);&lt;br /&gt;
  stack2.push(&amp;quot;z&amp;quot;);&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;Pop stack1: &amp;quot; &amp;lt;&amp;lt; stack1.pop() &amp;lt;&amp;lt; endl;&lt;br /&gt;
  for(i = 0; i &amp;lt;4; i++) &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;Pop stack2: &amp;quot; &amp;lt;&amp;lt; stack2.pop() &amp;lt;&amp;lt; endl;&lt;br /&gt;
  // demonstrate double stacks&lt;br /&gt;
  stack&amp;lt;double&amp;gt; doubleValueStack1, doubleValueStack2;  // create two stacks&lt;br /&gt;
  // initialize the stacks&lt;br /&gt;
  doubleValueStack1.init();&lt;br /&gt;
  doubleValueStack2.init();&lt;br /&gt;
  doubleValueStack1.push(1.1);&lt;br /&gt;
  doubleValueStack2.push(2.2);&lt;br /&gt;
  doubleValueStack1.push(3.3);&lt;br /&gt;
  doubleValueStack2.push(4.4);&lt;br /&gt;
  doubleValueStack1.push(5.5);&lt;br /&gt;
  doubleValueStack2.push(6.6);&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;Pop doubleValueStack1: &amp;quot; &amp;lt;&amp;lt; doubleValueStack1.pop() &amp;lt;&amp;lt; endl;&lt;br /&gt;
  for(i = 0; i &amp;lt;4; i++) &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;Pop doubleValueStack2: &amp;quot; &amp;lt;&amp;lt; doubleValueStack2.pop() &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>