File: qstack.html

package info (click to toggle)
qt4-x11 4%3A4.8.2%2Bdfsg-11
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 701,696 kB
  • sloc: cpp: 2,686,179; ansic: 375,485; python: 25,859; sh: 19,349; xml: 17,091; perl: 14,765; yacc: 5,383; asm: 5,038; makefile: 1,259; lex: 555; ruby: 526; objc: 347; cs: 112; pascal: 112; php: 54; sed: 34
file content (143 lines) | stat: -rw-r--r-- 9,292 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qstack.cpp -->
  <title>Qt 4.8: QStack Class Reference</title>
  <link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="content"> 
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
  </div>
  <div class="breadcrumb toolblock">
    <ul>
      <li class="first"><a href="index.html">Home</a></li>
      <!--  Breadcrumbs go here -->
<li><a href="modules.html">Modules</a></li>
<li><a href="qtcore.html">QtCore</a></li>
<li>QStack</li>
    </ul>
  </div>
</div>
<div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<h1 class="title">QStack Class Reference</h1>
<!-- $$$QStack-brief -->
<p>The QStack class is a template class that provides a stack. <a href="#details">More...</a></p>
<!-- @@@QStack -->
<pre class="cpp"> <span class="preprocessor">#include &lt;QStack&gt;</span></pre><p><b>Inherits: </b><a href="qvector.html">QVector&lt;T&gt;</a>.</p>
<p><b>Note:</b> All functions in this class are <a href="threads-reentrancy.html#reentrant">reentrant</a>.</p>
<ul>
<li><a href="qstack-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qstack.html#QStack">QStack</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qstack.html#dtor.QStack">~QStack</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> T </td><td class="memItemRight bottomAlign"><b><a href="qstack.html#pop">pop</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstack.html#push">push</a></b> ( const T &amp; <i>t</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstack.html#swap">swap</a></b> ( QStack&lt;T&gt; &amp; <i>other</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> T &amp; </td><td class="memItemRight bottomAlign"><b><a href="qstack.html#top">top</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> const T &amp; </td><td class="memItemRight bottomAlign"><b><a href="qstack.html#top-2">top</a></b> () const</td></tr>
</table>
<ul>
<li class="fn">65 public functions inherited from <a href="qvector.html#public-functions">QVector</a></li>
</ul>
<h3>Additional Inherited Members</h3>
<ul>
<li class="fn">2 static public members inherited from <a href="qvector.html#static-public-members">QVector</a></li>
</ul>
<a name="details"></a>
<!-- $$$QStack-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The QStack class is a template class that provides a stack.</p>
<p>QStack&lt;T&gt; is one of Qt's generic <a href="containers.html">container classes</a>. It implements a stack data structure for items of a same type.</p>
<p>A stack is a last in, first out (LIFO) structure. Items are added to the top of the stack using <a href="qstack.html#push">push</a>() and retrieved from the top using <a href="qstack.html#pop">pop</a>(). The <a href="qstack.html#top">top</a>() function provides access to the topmost item without removing it.</p>
<p>Example:</p>
<pre class="cpp">     <span class="type">QStack</span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> stack;
     stack<span class="operator">.</span>push(<span class="number">1</span>);
     stack<span class="operator">.</span>push(<span class="number">2</span>);
     stack<span class="operator">.</span>push(<span class="number">3</span>);
     <span class="keyword">while</span> (<span class="operator">!</span>stack<span class="operator">.</span>isEmpty())
         cout <span class="operator">&lt;</span><span class="operator">&lt;</span> stack<span class="operator">.</span>pop() <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;</pre>
<p>The example will output 3, 2, 1 in that order.</p>
<p>QStack inherits from <a href="qvector.html">QVector</a>. All of <a href="qvector.html">QVector</a>'s functionality also applies to QStack. For example, you can use <a href="qvector.html#isEmpty">isEmpty</a>() to test whether the stack is empty, and you can traverse a QStack using <a href="qvector.html">QVector</a>'s iterator classes (for example, <a href="qvectoriterator.html">QVectorIterator</a>). But in addition, QStack provides three convenience functions that make it easy to implement LIFO semantics: <a href="qstack.html#push">push</a>(), <a href="qstack.html#pop">pop</a>(), and <a href="qstack.html#top">top</a>().</p>
<p>QStack's value type must be an <a href="containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="qwidget.html">QWidget</a> as a value; instead, store a <a href="qwidget.html">QWidget</a> *.</p>
</div>
<p><b>See also </b><a href="qvector.html">QVector</a> and <a href="qqueue.html">QQueue</a>.</p>
<!-- @@@QStack -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QStack[overload1]$$$QStack -->
<h3 class="fn"><a name="QStack"></a>QStack::<span class="name">QStack</span> ()</h3>
<p>Constructs an empty stack.</p>
<!-- @@@QStack -->
<!-- $$$~QStack[overload1]$$$~QStack -->
<h3 class="fn"><a name="dtor.QStack"></a>QStack::<span class="name">~QStack</span> ()</h3>
<p>Destroys the stack. References to the values in the stack, and all iterators over this stack, become invalid.</p>
<!-- @@@~QStack -->
<!-- $$$pop[overload1]$$$pop -->
<h3 class="fn"><a name="pop"></a><span class="type">T</span> QStack::<span class="name">pop</span> ()</h3>
<p>Removes the top item from the stack and returns it. This function assumes that the stack isn't empty.</p>
<p><b>See also </b><a href="qstack.html#top">top</a>(), <a href="qstack.html#push">push</a>(), and <a href="qvector.html#isEmpty">isEmpty</a>().</p>
<!-- @@@pop -->
<!-- $$$push[overload1]$$$pushconstT& -->
<h3 class="fn"><a name="push"></a><span class="type">void</span> QStack::<span class="name">push</span> ( const <span class="type">T</span> &amp; <i>t</i> )</h3>
<p>Adds element <i>t</i> to the top of the stack.</p>
<p>This is the same as <a href="qvector.html#append">QVector::append</a>().</p>
<p><b>See also </b><a href="qstack.html#pop">pop</a>() and <a href="qstack.html#top">top</a>().</p>
<!-- @@@push -->
<!-- $$$swap[overload1]$$$swapQStack<T>& -->
<h3 class="fn"><a name="swap"></a><span class="type">void</span> QStack::<span class="name">swap</span> ( <span class="type">QStack</span>&lt;<span class="type">T</span>&gt; &amp; <i>other</i> )</h3>
<p>Swaps stack <i>other</i> with this stack. This operation is very fast and never fails.</p>
<p>This function was introduced in Qt 4.8.</p>
<!-- @@@swap -->
<!-- $$$top[overload1]$$$top -->
<h3 class="fn"><a name="top"></a><span class="type">T</span> &amp; QStack::<span class="name">top</span> ()</h3>
<p>Returns a reference to the stack's top item. This function assumes that the stack isn't empty.</p>
<p>This is the same as <a href="qvector.html#last">QVector::last</a>().</p>
<p><b>See also </b><a href="qstack.html#pop">pop</a>(), <a href="qstack.html#push">push</a>(), and <a href="qvector.html#isEmpty">isEmpty</a>().</p>
<!-- @@@top -->
<!-- $$$top$$$top -->
<h3 class="fn"><a name="top-2"></a>const <span class="type">T</span> &amp; QStack::<span class="name">top</span> () const</h3>
<p>This is an overloaded function.</p>
<p><b>See also </b><a href="qstack.html#pop">pop</a>() and <a href="qstack.html#push">push</a>().</p>
<!-- @@@top -->
</div>
  <div class="ft">
    <span></span>
  </div>
</div> 
<div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2012 Nokia Corporation and/or its
      subsidiaries. Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      The documentation provided herein is licensed under the terms of the
      <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation
      License version 1.3</a> as published by the Free Software Foundation.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      Nokia, Qt and their respective logos are trademarks of Nokia Corporation 
      in Finland and/or other countries worldwide. All other trademarks are property
      of their respective owners. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
</div>
</body>
</html>