第8章 告白递归栈溢出(上)

作者:Yehyuni
更新时间:2025-03-25 23:03
点击:71
章节字数:7644

举报章节
选择正文字体:

2025年3月17日

似乎,是一场梦。

毕业的疲惫如潮水般涌来。上学也好毕业也好都很累。事到如今,毕业就是毕业了,面对前路坎坷如同一滩烂泥般的未来,我有什么办法。

好烦啊!!!

在欢声笑语的校园步道里走着。

和在校门留影的毕业生们擦肩而过。

和回到社团与学弟学妹作最后告别的毕业生们擦肩而过。

和嬉笑打闹的情侣毕业生们擦肩而过。

烦躁到妹妹溜到我身边了也没察觉到。

直到感觉到有一只手在我面前反复while(true)晃动,努力调试我的视线焦点时,我才注意到身旁的娇小身影。

「姊姊,恭喜妳毕业啦!」

清脆地声音如同清泉滴落时苔石时的回馈,向我发出祝贺的是我的亲妹妹。

不过,她比我要小两岁,所以与穿着毕业服饰的我不同,尚未触及毕业这道指令,身上还是一如往常的校服打扮。修短的百褶裙随风摇曳,胸口的蝴蝶结始终保持着微妙的歪度,使之既不失端庄又微妙地透出白皙的风光。正是这个年龄少女流行的参数调校。我回答她道:

「是啊,毕业了。」

「三月份毕业就是好诶!有种生机勃勃的感觉!」

妹妹的语气镶嵌着雀跃,像是宣告一个成功的return spring;听罢,我的眼神下意识地开始穿越熙熙攘攘的人群,徒劳地寻找妹妹口中所谓春日的感觉。可惜我们学校不种樱花——并不是说没有五彩缤纷的春花绽放,只是有种对樱花必须堆叠压满毕业季的近乎执念的掌控欲,但实在没有也没办法。我又下意识地轻叹一声继续前进,妹妹则紧跟在我身旁。

「姊姊是在找樱花吗?」

「是啊...妳怎么知道吗?」

「姊姊,我喜欢妳。」

心脏漏跳了一拍。吃惊的我转过身去看向面颊上染上绯红的妹妹。

「姊姊,妳可能有点惊讶吧,但是我说这话也是很害羞的。因为毕业了才想着这是最后的机会...」

[collapse=0,#]

#include<iostream>

#include <string>

#include<chrono>

#include <thread>


class MemoryStack{

private:

std::string currentScene;

boolisOverflow;


public:

MemoryStack() :currentScene("初始記憶"),isOverflow(false) {}


void pushScene(const std::string&scene) {

if (!isOverflow) {

currentScene =scene;

std::cout << "[Scene Updated]: "<< currentScene << "\n";

} else {

std::cout << "[Stack Overflow]:記憶溢出,無法推送新場景\n";

}

}


void confessCallback() {

std::cout << "妹妹:「姊姊,我喜歡妳。」\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1000));// 模擬心跳停頓

std::cout << "姊姊:(心跳溢出...)\n";

std::cout << "妹妹:「姊姊,妳可能有點驚訝吧……其實我說這話也很害羞。因為畢業了,我才覺得這是最後的機會,程式跑完最後一圈必須得把這句話push出去,不然就真的卡死了。」\n";

}


void rewindTime() {

std::cout <<"[Time Rewind Triggered]: 時間開始回溯...\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1500));// 模擬回溯過程

currentScene = "2025年3月17日,似乎,是一場夢。";

std::cout << "[Rewind Complete]: " <<currentScene << "\n";

}


voidrecursiveLoop(int depth, int maxDepth) {

if (depth >=maxDepth) {

std::cout << "[Stack OverflowDetected]: 告白記憶過載,觸發時間回溯\n";

isOverflow = true;

rewindTime();

return;

}


pushScene("畢業的疲憊如潮水般襲來...");

std::cout << "深度"<< depth << ": 姊姊走在校園步道,妹妹悄然靠近...\n";

if (depth == maxDepth - 1) {

confessCallback();// 告白觸發

}

recursiveLoop(depth + 1, maxDepth); // 遞迴繼續

}

};


int main() {

std::cout << "【2025春】告白遞迴棧溢出\n";

MemoryStack timeline;

timeline.pushScene("2025年3月17日,似乎,是一場夢。");


// 模擬故事推進到告白,然後回溯

timeline.recursiveLoop(0, 3); // 設定最大深度為3,模擬場景推進


return 0;

}

[/collapse]

2025年3月17日

似乎,是一场梦。

毕业的疲惫如同潮水般漫過胸膛...上学的倦怠感简直如影随形。面对人生转折点上泥泞般黏稠而混沌的未来,真让人感慨怎么还没跑满青春的进程就exit(graduate)了。记得毕业的几天前我和隔壁班上的我的好朋友抱怨时,她还笑着对我说:「这还真是妳一如既往的风格呢!毕业后也要记得联络啊!」

我的风格究竟是什么来着?坐视着旁人用汗水和时光堆叠起的青春资料,但对于平庸的少女来说其无非事不关己的浮点般漂浮,始终无法嵌入我的内核模组。

好累。

我拖着不太积极的步伐在校园的欢声笑语间挪动。连亲妹妹的娇小身影悄然滑至身侧都未曾察觉到。

「姊姊!恭喜妳毕业啦!」

「呜哇!」

受到惊讶的我扭头看向得意洋洋的妹妹。

「妳...妳怎么在这里?」

「这又是什么话?我是来庆祝姊姊毕业的呀!」

妹妹将手上的捧花递给我。色彩相得益彰的春花们簇拥在一起,契合着毕业季生意盎然的场景。然而,我捧着手上的花左顾右盼,仔细端详却怅然若失。总觉得遗漏了什么关键色块。

啊,我知道了,缺少那抹嫩粉的樱色。三月、水手服、写有卒业式字样的白色木板、手中盛放卒业证书的丸筒(まるづつ) ,最后必不可缺的则是漫天飞舞的樱花。见到我触景生悲的样子,妹妹摇动着裙摆,有些没好气的样子:

「毕业了呀——姊姊要开心一些好不好!已经是大人了喔,可以自由自在地做自己想做的事情了!」

想做的事情吗...

大脑仍在缓存未清除状态的我情不自禁地整理好妹妹胸前的蝴蝶结和领子,她总是不喜欢把蝴蝶结戴得规规矩矩的。妹妹不太顺从地嘴里发出「嗯嗯」的抗议声。

「姊姊不要总是这样,我又不是小孩子...」

「我是不懂妳怎么想的啦,但是稍微注意下仪容好不好。」

妹妹有些不好意思地说:

「我知道。其实我今天是故意戴歪的呀。」

「什么意思?」

「因为,姊姊毕业后就不能帮我整理蝴蝶结了。」

「诶...」

我看向妹妹。调整好蝴蝶结的我妹妹迅速调整好姿势站在我的面前,脸上也变得通红一片。

「其实、其实我喜欢姊姊很久了!」

虽然我知道妹妹对我抱有好感,但我不明白这句话的含义,仅仅是搞姊妹情深可没必要这么正经哦。但迟钝的我随后才想到,妹妹也许是其他的意思。

诶?哪个意思?

心跳瞬间溢出,如同递归函数未设终止条件,栈溢出的警报在胸腔内响鸣。我惊愕地望向眼眶湿润的妹妹。

「请姊姊和我交往吧!因为,毕业是最后的机会了...」

[collapse=0,##]

#include<iostream>

#include <string>

#include<chrono>

#include <thread>


class MemoryStack{

private:

std::string currentScene;

boolisOverflow;

int cycleCount; // 新增循環計數器


public:

MemoryStack() : currentScene("初始記憶"),isOverflow(false), cycleCount(0) {}


void pushScene(conststd::string& scene) {

if (!isOverflow) {

currentScene = scene;

std::cout << "[SceneUpdated]: " << currentScene << "\n";

} else {

std::cout << "[StackOverflow]: 記憶溢出,無法推送新場景\n";

}

}


void confessCallback(int cycle) {

if (cycle == 1) {

std::cout << "妹妹:「姊姊,我喜歡妳。」\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1000)); //模擬心跳停頓

std::cout << "姊姊:(心跳溢出...)\n";

std::cout << "妹妹:「姊姊,妳可能有點驚訝吧……其實我說這話也很害羞。因為畢業了,我才覺得這是最後的機會,像程式跑完最後一圈必須得把這句話push出去,不然就真的卡死了。」\n";

} else if (cycle == 2) {

std::cout <<"妹妹:「其實、其實我喜歡姊姊很久了!」\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1000)); //模擬心跳停頓

std::cout << "姊姊:(心跳再次溢出,遞迴未設終止條件...)\n";

std::cout << "妹妹:「請姊姊和我交往吧!因為,畢業是最後的機會了……」\n";

}

}


void rewindTime() {

std::cout<< "[Time Rewind Triggered]: 時間開始回溯...\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1500));// 模擬回溯過程

currentScene = "2025年3月17日,似乎,是一場夢。";

std::cout << "[Rewind Complete]: " <<currentScene << "\n";

cycleCount++; //增加循環次數

}


void recursiveLoop(int depth, int maxDepth, intcycle) {

if (depth >= maxDepth) {

std::cout << "[Stack Overflow Detected]:告白記憶過載,觸發時間回溯\n";

isOverflow = true;

rewindTime();

isOverflow = false; // 重置溢出狀態以進入下一個循環

return;

}


if (cycle == 1) {

pushScene("畢業的疲憊如潮水般襲來...");

std::cout << "深度"<< depth << ": 姊姊走在校園步道,妹妹悄然靠近...\n";

} else if (cycle == 2) {

pushScene("畢業的疲憊如潮水般漫過胸膛...");

std::cout << "深度"<< depth << ": 姊姊拖著步伐,妹妹捧著春花出現...\n";

}


if (depth == maxDepth - 1) {

confessCallback(cycle); // 根據循環次數觸發不同告白

}

recursiveLoop(depth + 1, maxDepth, cycle); //遞迴繼續

}


int getCycleCount() const { return cycleCount;}

};


int main() {

std::cout << "【2025春】告白遞迴棧溢出\n";

MemoryStack timeline;

timeline.pushScene("2025年3月17日,似乎,是一場夢。");


// 第一個循環

std::cout << "\n=== 第一循環開始===\n";

timeline.recursiveLoop(0, 3, 1);


// 第二個循環

std::cout << "\n=== 第二循環開始===\n";

timeline.pushScene("2025年3月17日,似乎,是一場夢。");

timeline.recursiveLoop(0, 3, 2);


std::cout <<"\n[Total Cycles]: " << timeline.getCycleCount() <<"\n";

return 0;

}


[/collapse]

2025年3月17日

似乎,是一场梦。

头痛欲裂。

精神如同被淹没在水中。但是,淹没我的是「毕业的疲惫」。我不知为何倒在地上看着天空中缓缓漂移的云絮。毕业季,形形色色的同学从我的身旁走过。

啊...手脚失去响应了。怪不得起不来。

毫无征兆地,妹妹出现在我视野的一角。我說:

「诶...是妹妹啊。抱歉呢,姊姊躺在这里,等会就会被赶走的吧。只是我也不知道怎么回事。」

微笑如往常般明亮的妹妹开口说道:

「Warning!Critical error occurred.」

[collapse=0,###]

#include <iostream>

#include <string>

#include <chrono>

#include <thread>

#include <stdexcept>


class MemoryStack {

private:

std::string currentScene;

bool isOverflow;

int cycleCount;


public:

MemoryStack() : currentScene("初始記憶"), isOverflow(false), cycleCount(0) {}


void pushScene(const std::string& scene) {

if (!isOverflow) {

currentScene = scene;

std::cout << "[Scene Updated]: " << currentScene << "\n";

} else {

std::cout << "[Stack Overflow]: 記憶溢出,無法推送新場景\n";

}

}


void confessCallback(int cycle) {

if (cycle == 1) {

std::cout << "妹妹: 「姊姊,我喜歡妳。」\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1000));

std::cout << "姊姊: (心跳溢出...)\n";

std::cout << "妹妹: 「這是最後的機會,像程式跑完最後一圈……」\n";

} else if (cycle == 2) {

std::cout << "妹妹: 「其實我喜歡姊姊很久了!」\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1000));

std::cout << "姊姊: (心跳再次溢出...)\n";

std::cout << "妹妹: 「請姊姊和我交往吧!因為,畢業是最後的機會了……」\n";

}

}


void rewindTime() {

std::cout << "[Time Rewind Triggered]: 時間開始回溯...\n";

std::this_thread::sleep_for(std::chrono::milliseconds(1500));

currentScene = "2025年3月17日,似乎,是一場夢。";

std::cout << "[Rewind Complete]: " << currentScene << "\n";

cycleCount++;

}


void recursiveLoop(int depth, int maxDepth, int cycle) {

try {

if (depth >= maxDepth) {

std::cout << "[Stack Overflow Detected]: 告白記憶過載,觸發時間回溯\n";

isOverflow = true;

rewindTime();

isOverflow = false;


// 第二次回溯後模擬異常

if (cycleCount == 2) {

std::cout << "\n=== 第二次回溯後嘗試載入 ===\n";

pushScene("畢業的疲憊如潮水般淹沒...");

std::cout << "姊姊被載入校園步道,準備與妹妹見面...\n";

throw std::runtime_error("[Critical Error]: 未知異常,記憶體崩潰!");

}

return;

}


if (cycle == 1) {

pushScene("畢業的疲憊如潮水般湧來...");

std::cout << "深度 " << depth << ": 姊姊在校園步道與妹妹見面...\n";

} else if (cycle == 2) {

pushScene("畢業的疲憊如潮水般漫過胸膛...");

std::cout << "深度 " << depth << ": 姊姊再次在校園步道與妹妹見面...\n";

}


if (depth == maxDepth - 1) {

confessCallback(cycle);

}

recursiveLoop(depth + 1, maxDepth, cycle);

} catch (const std::runtime_error& e) {

std::cout << e.what() << "\n";

std::cout << "[System Crash]: 程式強制重啟中...\n";

std::this_thread::sleep_for(std::chrono::milliseconds(2000));

forceReset();

}

}


void forceReset() {

std::cout << "[Force Reset]: 重啟完成,場景遷移...\n";

currentScene = "2025年3月17日,畢業典禮剛結束,無人的學校禮堂。";

isOverflow = false;

std::cout << "[New Scene Loaded]: " << currentScene << "\n";

std::cout << "姊姊獨自坐在禮堂的窗邊...\n";

}


int getCycleCount() const { return cycleCount; }

};


int main() {

std::cout << "【2025春】 告白遞迴棧溢出\n";

MemoryStack timeline;

timeline.pushScene("2025年3月17日,似乎,是一場夢。");


// 第一個循環

std::cout << "\n=== 第一循環開始 ===\n";

timeline.recursiveLoop(0, 3, 1);


// 第二個循環

std::cout << "\n=== 第二循環開始 ===\n";

timeline.recursiveLoop(0, 3, 2);


std::cout << "\n[Total Cycles]: " << timeline.getCycleCount() << "\n";

return 0;

}

[/collapse]



我要打赏

打赏请先登录

粉丝排行

您目前的粉丝值是:-
排行是:-
打赏动态 更多
  • 还没有打赏记录
没有找到数据。