原创 VSCode使用過程中遇到的一些坑

最近在使用VSCode編譯C++,其中遇到了一些坑,便在此做一些解決的記錄。我使用的編譯器是MinGw。 坑1:按下F5運行時提示如下: 文字版提示爲: Unable to start debugging. Program path

原创 STL中的swap函數的坑

最近刷LeetCode題目第30題時,自定義一個字符串數組的全排列函數時,遇到了一個坑,先看字符串數組全排列函數如下: unordered_set<string> help; void combine(int start, int

原创 圖的兩種遍歷方式:DFS和BFS -----摘自《天勤數據結構高分筆記》並做了寫修改,使用了STL中的數據結構實現

//圖的鄰接表示 static struct ArcNode { int adjvex; //該邊所指向的節點的位置 struct ArcNode* nextarc; //指向下一條邊的指針

原创 斐波那契數列log(n)時間複雜度解決方案---LeetCode70題代碼

代碼思路百度一大把,我主要是自己擼了遍,通過過了LeetCode測試。截圖如下: vector<vector<int> > operator * (const vector<vector<int> >& a, const vector

原创 Go語言中的GOPATH解析

在說GOPATH之前,先說說GO語言的項目結構: 1、Go語言中組織單元最大的爲項目,項目下包含包。一個包可以有多個文件 2、包在物理層面上就是文件夾。同一個文件夾中多個文件的package必須相同,一般package和所在的文件夾名稱相

原创 使用vector的resize()函數過程中踩的坑

最近在學習寫一些算法的代碼用到了動態數組,主要思路是:在命令行中輸入數組的大小,然後再調用vector::resize()函數重新分配創建的vector對象的大小,從而實現動態數組的目標。但是在實踐中發現,這個resize()函數貌似工作

原创 雙下標(雙索引)的妙用

編程時,涉及到數組的旋轉(以數組中心點爲對稱點進行亮亮交換),根據一般的做法是下面這樣: for (int i = 0; i < n/2; ++i) { a[i] = a[n-1-i]; } 但有時候碰到邏輯複雜的時候,這個就很容易把

原创 函數功能單一化的好處

在編程時,一個函數功能單一化不僅僅只是有降低耦合性的好處,在避免一些很深或者很容易忽略的bug也很有幫助。請看下面的問題代碼(原題是CCF2014年最優配餐問題,這個算法並不是正確的。算法 正確性並不是本文的重點): #include

原创 C++ static關鍵字解析

1、static關鍵字修飾全局變量時,該變量存儲在代碼區,初始化時機在main函數之前(好像所有全局變量的初始化時機都是在main函數之前切被初始化爲0)。且static修飾的全局變量僅限於本編譯單元(一個編譯單元即是一個cpp文件)可訪

原创 Windows下屏蔽特定網址

Windows中host路徑爲:C:\Windows\System32\drivers\etc 使用notepad++打開host文件,對於需要屏蔽的網址,其格式爲: # 格式爲: 重定向的目標地址(一般爲0.0.0.0)

原创 遞歸的本質

特別聲明,以下大部分內容摘自李煜東的《算法競賽進階指南》    理解遞歸,首先要從函數調用說起。實際上,一臺32臺的計算機採用“堆棧結構”來實現函數調用,它在彙編語言中,按照函數參數從右至左的順序依次入棧(大部分編譯器貌似都是從右至左),

原创 樹狀數組和線段樹的理解

-----感謝SDU-ACM的教程分享,具體教程可在B站上搜索 樹狀數組總結:     1、思想:按照2的整數次冪進行分解,把一個前綴區間分解成若干個長度爲2的整數次冪的小區間。例如[1,6]分解爲6=4+2,即:     [1,4]和[

原创 Goland對調試程序失去控制權限

我的goland是2019.3.27版本的,最近在調試程序的時候總是失去響應,左下方stop按鈕由紅方塊變成了黃骷髏頭,長這樣的 ,原本應該是這樣的: ,怎麼點都沒有反應。一怒之下關掉了調試程序的窗口,再次點擊調試時,提示下面的錯誤:

原创 CCF201703-2 學生排隊

#include<bits/stdc++.h> using namespace std; map<int,int> que; //學生學號 ---> 位置 int n = 0 ,p = 0, q = 0; void mov

原创 操作系統讀者寫者問題-----摘自《天勤操作系統高分筆記》

算法思想來自這本書,我在該基礎上換成了C++的版本,直接可以在VS下運行成功 讀者優先 #include<bits/stdc++.h> #include <mutex> using namespace std; mutex rmutex