tag

標籤
貢獻12
68
11:59 PM · Nov 05 ,2025

@棧 / 博客 RSS 訂閱

code - Go語言中函數的return不是原子操作,在底層是分為兩步來執行

package main import ( "fmt" ) // Go語言中函數的return不是原子操作,在底層是分為兩步來執行 // 第一步:返回值賦值 // defer // 第二步:真正的RET返回 // 函數中如果存在defer,那麼defer執行的時機是在第一步和第二步之間 func f1() int { x:=5 defer func(){

, function , defer , go

收藏 評論

mob64ca14005461 - cJSON_GetObjectItem堆棧溢出

函數調用時會在棧上有一系列的保留現場及傳遞參數的操作。棧的空間大小有限定,VC的缺省值是2M。棧發生溢出的情況一般是程序中分配了大量數組或遞歸函數層次太深。棧是由編譯器自動管理的,當一個函數調用完返回後它會釋放該函數中所有的棧空間。 堆是

機器學習 , 內存 , , , 管理 , 人工智能 , c

收藏 評論

bigsai - 棧和括號匹配問題,一文搞懂

什麼是棧 棧在我們日常編碼中遇到的非常多,很多人對棧的接觸可能僅僅侷限在 遞歸使用的棧 和 StackOverflowException,棧是一種後進先出的數據結構(可以想象生化金字塔的牢房和生化角鬥場的狗洞)。 棧(stack)是一種運算受限的線性數據結構,它具有以下特點: 1. 運算受限: 棧限定僅在表尾進行插入和刪除操作,這一端被稱為棧頂,而另一端稱為棧底。這限制了對棧的操作,只能按照後進

數據結構 , , JAVA , 數據結構與算法 , 後端

收藏 評論

代碼工匠傳奇 - windows 因為控制列表不規範 docker

今天犯了一個邏輯上的錯誤,點擊一個列表控制器進入內容控制器(內容控制器是用alloc方式創建的,然後自定義了一個視圖,添加到該內容控制器上,在自定義視圖上添加了一個按鈕,點擊按鈕的處理時間是從內容控制器進入另一個控制器界面,因為按鈕是在視圖類中定義的,故需在視圖類的按鈕點擊事件的處理函數中創建內容控制器類(用alloc方式創建的),然後調用內容控制器類的

導航 , 雲計算 , 類方法 , , 類對象 , ios , Docker

收藏 評論

iicode - leetcode 232. Implement Queue using Stacks 用棧實現隊列(簡單)

一、題目大意 標籤: 棧和隊列 https://leetcode.cn/problems/implement-queue-using-stacks 請你僅使用兩個棧實現先入先出隊列。隊列應當支持一般隊列支持的所有操作(push、pop、peek、empty): 實現 MyQueue 類: void push(int x) 將元素 x 推到隊列的末尾 int pop() 從隊列的開頭移除並返回

leetcode , , 數據結構與算法 , 隊列

收藏 評論

GVenusLeo - [數據結構] 03 - 棧和隊列

從數據結構角度看,棧和隊列也是線性表,其特殊性在於棧和隊列的基本操作是線性表操作的子集,它們是操作受限的線性表,因此,可稱為限定性的數據結構。但從數據類型角度看,它們是和線性表大不相同的兩類重要的抽象數據類型。由於它們廣泛應用在各種軟件系統中,因此在面向對象的程序設計中,它們是多型數據類型。 1 棧 1.1 抽象數據類型棧的定義 棧(stack)是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧

數據結構 , , 隊列

收藏 評論

我有切糕 - 算法 - 棧與隊列 - 用棧組成隊列

力扣 232題 用棧實現隊列 請你僅使用兩個棧實現先入先出隊列。隊列應當支持一般隊列支持的所有操作(push、pop、peek、empty): 實現 MyQueue 類: void push(int x) 將元素 x 推到隊列的末尾 int pop() 從隊列的開頭移除並返回元素 int peek() 返回隊列開頭的元素 boolean empty() 如果隊列為空,返回 true ;否則,返

算法 , , 隊列

收藏 評論

月亮給蒙娜麗莎 - 棧和隊列

棧和隊列 一、關於模擬棧使用何種模型 1.順序表:尾插尾刪很快,緩存利用率高,但是要擴容 2.單鏈表:使用鏈表頭作為棧頂來插入刪除數據也很快 3.帶頭雙向循環鏈表:也可以,時間也是O(1) 二、棧的模擬實現 //"stack.h" typedef int type; typedef struct stack { type* a; int top; int capacity;

數據結構 , , 隊列

收藏 評論

測試菜鳥 - 數據結構與算法

一、算法 1.1、算法基礎 概念:算法是獨⽴存在的⼀種解決問題的⽅法和思想 算法的特性: 輸入:算法具有0個或多個輸⼊ 輸出: 算法⾄少有1個或多個輸出 有窮性: 算法在有限的步驟之後會⾃動結束⽽不會⽆限循環,並且每⼀個步驟可以在可接受的時間內完成 確定性:算法中的每⼀步都有確定的含義,不會出現⼆義性 可⾏性:算法的每⼀步都是可⾏的,也就是説每⼀步都能夠執⾏有限的次數完成 1.

, 雙向鏈表 , 鏈表 , 數據結構和算法 , 隊列

收藏 評論

lindsay_bubble - Leetcode 84_柱狀圖中最大的矩形

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 想法:感覺這個題考的是數學,是邏輯。 怎麼找矩形呢?就是當前位置的最高點,向左和向右畫矩形,找他比他矮的點left, right,就停止。 高度就是height[i] 寬度就是(right-left+1)-2,因為找到的那兩個點是不能算進

leetcode , , JAVA

收藏 評論

lindsay_bubble - Leetcode 85_maximal_rectangle_最大矩形

一、棧 承接Leetcode 84,柱狀圖算最大矩形面積,把該題入參改為柱狀圖高度即可 PS:這版本手搓int[]做棧和直接用ArrayDeque做棧,結果僅差2ms;但題84相差近15ms。 public int maximalRectangle(char[][] matrix) { if (matrix.length == 0) {

leetcode , , JAVA

收藏 評論

點墨 - c++ 對象在棧上還是在堆上?

c++的對象到底在棧上還是分配在堆上? 首先,毋庸置疑,使用new和malloc系列函數分配的對象,一定是在堆上的。 Object *obj = new Object(); 有爭議的是 Object obj; 它是在棧上還是在堆上呢? 要回答這個問題,首先我們需要理解這句話的意思,這句話並不代表在棧上分配內存,它代表的是讓obj具有“自動存儲(automatic storage)”的性質。所謂的“

內存 , , , c++

收藏 評論