亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對(duì)象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊(cè)

C++ Stack(棧)

在計(jì)算機(jī)科學(xué)領(lǐng)域,我們致力于各種程序。他們每個(gè)人都有自己的域和實(shí)用程序。根據(jù)程序創(chuàng)建的目的和環(huán)境,我們有大量數(shù)據(jù)結(jié)構(gòu)可供選擇。其中之一是“堆?!?。在討論這種數(shù)據(jù)類型之前,讓我們看一下它的語法。

語法

template<class T, class Container = deque<T> > class stack;

這種數(shù)據(jù)結(jié)構(gòu)使用LIFO技術(shù),其中LIFO表示后進(jìn)先出。首先插入的元素將在末尾提取,以此類推。有一個(gè)名為“top”的元素,它是位于最上面位置的元素。所有插入和刪除操作都是在堆棧的頂部元素本身進(jìn)行的。

應(yīng)用區(qū)域中的堆棧暗示為容器適配器。

容器應(yīng)支持以下操作列表:

  • empty

  • size

  • back

  • push_back

  • pop_back

模板參數(shù)

T:參數(shù)指定容器適配器將保留的元素的類型。

Container:參數(shù)指定容器的內(nèi)部對(duì)象,用于容納堆棧的元素。

成員類型

下面給出了堆棧成員類型的列表,并對(duì)其進(jìn)行了簡(jiǎn)短描述。

會(huì)員類型描述
value_type指定了元素類型。
container_type指定了基礎(chǔ)容器類型。
size_type它指定元素的大小范圍。

函數(shù)

借助函數(shù),可以在編程領(lǐng)域中使用對(duì)象或變量。堆棧提供了大量可以在程序中使用或嵌入的函數(shù)。相同的列表如下:

函數(shù)描述
(constructor)該函數(shù)用于構(gòu)造堆棧容器。
empty該函數(shù)用于測(cè)試堆棧是否為空。如果堆棧為空,則該函數(shù)返回true,否則返回false。
size該函數(shù)返回堆棧容器的大小,該大小是堆棧中存儲(chǔ)的元素?cái)?shù)量的度量。
top該函數(shù)用于訪問堆棧的頂部元素。該元素起著非常重要的作用,因?yàn)樗胁迦牒蛣h除操作都是在頂部元素上執(zhí)行的。
push該函數(shù)用于在堆棧頂部插入新元素。
pop該函數(shù)用于刪除元素,堆棧中的元素從頂部刪除。
emplace該函數(shù)用于在當(dāng)前頂部元素上方的堆棧中插入新元素。
swap該函數(shù)用于交換引用的兩個(gè)容器的內(nèi)容。
relational operators非成員函數(shù)指定堆棧所需的關(guān)系運(yùn)算符。
uses allocator<stack>顧名思義,非成員函數(shù)將分配器用于堆棧。

示例:一個(gè)簡(jiǎn)單的程序,說明基本堆棧函數(shù)的用法。

#include <iostream>
#include <stack>
using namespace std;
void newstack(stack <int> ss)
{
	stack <int> sg = ss;
	while (!sg.empty())
	{
		cout << '\t' << sg.top();
		sg.pop();
	}
	cout << '\n';
}
int main ()
{
	stack <int> newst;
	newst.push(55);
	newst.push(44);
	newst.push(33);
	newst.push(22);
	newst.push(11);

	cout << "最新的堆棧是 : ";
	newstack(newst);
	cout << "\n newst.size() : " << newst.size();
	cout << "\n newst.top() : " << newst.top();
	cout << "\n newst.pop() : ";
	newst.pop();
	newstack(newst); 
	return 0;
}

輸出:

最新的堆棧是 : 	11	22	33	44	55

 newst.size() : 5
 newst.top() : 11
 newst.pop() : 	22	33	44	55