1. 程式人生 > >兩分鐘學會C++

兩分鐘學會C++

題記

一章

在函式裡static一個變數的效果

在一個類的函式中定義一個變數,累加它。

void paddyfield::StaticValueTest()
{
    static int i= 0;
    i++;
    cout << i << endl;
    sleep(1);
}

在主函式中,反覆呼叫這個函式,會怎樣?

int main()
{
    paddyfield pad;
    pad = paddyfield();
    for (int i = 0; i < 100; i ++) {
        pad.StaticValueTest();
    }
}

結果:

Finished building target: paddyfield

1
2
3
4
5
6

解釋:

區域性靜態變數:
  在區域性變數之前加上關鍵字static,區域性變數就成為一個區域性靜態變數。
  記憶體中的位置:靜態儲存區
  初始化:未經初始化的全域性靜態變數會被自動初始化為0(自動物件的值是任意的,除非他被顯式初始化);
  作用域:作用域仍為區域性作用域,當定義它的函式或者語句塊結束的時候,作用域結束。但是當局部靜態變數離開作用域後,並沒有銷燬,而是仍然駐留在記憶體當中,只不過我們不能再對它進行訪問,直到該函式再次被呼叫,並且值不變;

參考文件:

二章

關於snprintf這樣函式的一些瞭解

1、這類函式複製的字元個數一般是你輸入空間大小-1

vsnprintf(src_char, 1024, format, args);

這時只會複製1023個字元。自動保證以‘\0’結尾
2、這裡的函式機理都會涉及vsnprintf這個函式,其中有牽連到可變引數的傳遞。
函式應用:

void straddstr(string &src, const char *format, ...)
{
    va_list args;
    va_start(args, format);
    char src_char[1024
] = {0}; vsnprintf(src_char, sizeof(src_char), format, args); src += src_char; va_end(args); }

這是一個標準的可變引數的傳遞與應用。其中關鍵的是

va_list
va_start
va_end

這類va系列的方式,是最常見的可變引數傳遞。
::這裡值得注意的是這些基本都是巨集定義的,你也不能直接對它們進行逐個呼叫,除非你使用va_arg這個函式,但是這個函式又要求你向它說明可變引數的型別,所以你想實現類似於snprintf的函式,還是直接呼叫vsnprintf這樣現成的函式比較好。
巨集應用:

#define OSYSRT(RET, SIZE, format, ...) do {\
        int _O_RET = OSystem(SIZE, format, ##__VA_ARGS__);\
        if (_O_RET<0 || _O_RET==127)\
        { return RET;}\
    } while(0)

在巨集裡面的應用可以直接參考上面程式碼。

參考文件:

三章

關於std::find函式

在普通的list容器裡面,要查詢某個元素,比較麻煩,這是我們用std::find函式來,就能減低程式碼量。

#include <algorithm>
    list<string>::iterator itd;
    itd = std::find(lstr.begin(), lstr.end(),"wen");
    if (itd != lstr.end()) {
        cout << "yes" << endl;
    } else {
        cout << "no" << endl;
    }

相關推薦

分鐘學會C++

題記 一章 在函式裡static一個變數的效果 在一個類的函式中定義一個變數,累加它。 void paddyfield::StaticValueTest() { static int i= 0; i++; cout

#分鐘學會使用Java Core API提供的個“比較”介面

Comparable和Comparator是Java Core API提供的兩個介面。從它們的名字,我們可以告訴他們可能用於以某種方式比較東西。但究竟是什麼,它們之間有什麼區別?以下是回答此問題的兩個示例。這些簡單的例子比較了兩個HDTV的尺寸。閱讀程式碼後,如何使用Comparable vs Co

【公眾號系列】分鐘學會SAP F1技巧

origin 根據 http 想要 www. 繼續 內容 應該 logs 公眾號:SAP Technical 本文作者:matinal 原文出處:http://www.cnblogs.com/SAPmatinal/ 原文鏈接:【公眾號系列】兩分鐘學會SAP F1技巧

[一分鐘學會系列之一] 一分鐘學會C++呼叫WebService

一分鐘學會系列,介紹一些易學的程式設計小技巧等,沒有深度,但是很實用。1.       WebService 簡介Web Service即線上應用服務,可以通過Internet來訪問並使用其提供的介面。Web Service可以看作是跨平臺,跨語言的網路API。構建和使用We

分鐘學會Unity3D布娃娃的使用

ear water ria 要去 原創文章 load fbx view 好的 版權聲明:本文為博主原創文章,未經博主同意

30分鐘學會Objective-C

> 注: 本文首發於我的個人部落格:https://evilpan.com/2019/04/05/objc-basics/ 請原諒我的標題黨。但是如果你有其他語言的學習經驗,要學習**Objective-C**的語法特性其實並不困難。正如我之前在[軟體開發的一些"心法"][1]一文中所說,程式語言只是一個工

分鐘學會用SpringMVC搭建最小系統(超詳細)

springmvc+mybatis dubbo+zookeeper restful redis分布式緩存 kafka 前言做 Java Web 開發的你,一定聽說過SpringMVC的大名,作為現在運用最廣泛的Java框架,它到目前為止依然保持著強大的活力和廣泛的用戶群。本文介紹如何用ecli

30分鐘學會如何使用Shiro

springmvc+mybatis dubbo+zookeeper restful redis分布式緩存 shiro kafka 一、架構要學習如何使用Shiro必須先從它的架構談起,作為一款安全框架Shiro的設計相當精妙。Shiro的應用不依賴任何容器,它也可以在JavaSE下使用。但

android 加密手機完畢後待機分鐘出現有頻率的雜音

加密 tin ger 詳細 pps 主動 oid per 手機 這個音效是code裏面主動加的,是為了提醒end user輸入PIN的一個提示音,也標誌著加密手機動作的完畢。 詳細位置是在alps\packages\apps\Settings\src\com\andro

分鐘學會dwg轉jpg格式

cad編輯器 說到dwg文件轉為JPG格式,我們必須要利用到迅捷cad編輯器軟件,因為這款軟件功能的強大超出你的想象,下面就來一起看一下這款軟件將dwg文件轉為JPG格式的具體操作步驟吧。 CAD編輯器下載http://www.downxia.com/downinfo/132480.html 1

Android零基礎入門第30節:分鐘掌握FrameLayout幀布局

控制 toggle b2b 遮擋 布局 edittext 文章 manage .com 原文:Android零基礎入門第30節:兩分鐘掌握FrameLayout幀布局前面學習了線性布局、相對布局、表格布局,那麽本期來學習第四種布局——FrameLayout幀布局。

分鐘學會 ConstraintLayout 之從屬性角度理解布局

uic mem app tor normal add 部分 pla ray ConstraintLayout 在 Android 開發中,我們通常是手寫布局,很少會用拖動來寫布局,雖然 ConstraintLayout 在 I/O 上以拖動來展現了各種功能

30分鐘學會如何使用Shiro(轉)

字段 col inf lan getc 含義 掌握 ide 包含 本文轉自http://www.cnblogs.com/learnhow/p/5694876.html 感謝作者 本篇內容大多總結自張開濤的《跟我學Shiro》原文地址:http://jinnianshilo

3) 十分鐘學會android--建立第一個APP,建立簡單的用戶界面

使用 圖標 run class 屏幕寬度 情況下 不可見 文本輸入框 nes 在本小節裏,我們將學習如何用 XML 創建一個帶有文本輸入框和按鈕的界面。下一節課將學會使 APP 對按鈕做出響應——按鈕被按下時,文本框裏的內容被發送到另外一個 Acti

8) 十分鐘學會android--Activity的生命周期之停止與重啟

圖標 getc uid contex ont progress 部分 重啟 settings 恰當的停止與重啟我們的activity是很重要的,在activity生命周期中,他們能確保用戶感知到程序的存在並不會丟失他們的進度。在下面一些關鍵的場景中會涉及到停止與重啟:

基於springboot微信公眾號開發,幾分鐘學會微信自動回復

ssa star 點擊 stat html asn document text cit 效果圖 1.準備工作 申請微信訂閱號(個人只能申請訂閱號,而且沒什麽功能,也無法認證),申請完畢,點擊 開發=>基本配置,如下圖: 服務器配置需要有 域名 80端口,我猜

30分鐘學會如何使用Shiro(轉)

dex user false fin hiberna bean overflow getc mis 本篇內容大多總結自張開濤的《跟我學Shiro》原文地址:http://jinnianshilongnian.iteye.com/blog/2018936我並沒有全部看完,只是

小白30分鐘學會網頁采集基礎教程

網頁采集首先,以某個多頁(需要自動翻頁)表格數據的采集為例,先演示一次網頁采集的完整的過程:點擊從頭播放完整動圖演示這裏使用的是八爪魚,依次點擊表格某一行的每個字段,可以自動識別出其他所有數據行,並自動創建循環列表;點擊翻頁按鈕,選擇“循環點擊下一頁”動作,就能自動創建翻頁循環。網頁信息爪取相關的工具有很多,

30分鐘學會iOS 11開發環境xcode 9圖文教程

iOS 11關註微信公眾號【異步圖書】每周送書Xcode是一款功能全面的應用程序,通過此工具可以輕松輸入、編譯、調試並執行Objective-C程序。如果想在Mac上快速開發iOS應用程序,則必須學會使用這個強大的工具的方法。在本文容中,將詳細講解Xcode 9開發工具的基本知識,為讀者步入本書後面知識的學習

【一分鐘學會】網站性能在線評估

訪問 服務 開發 技術 服務器ip 分享圖片 image 下載速度 clas 通過該工具可以多個地點Ping服務器以檢測服務器響應速度,如果輸入域名自動會進行網站響應速度檢測,包括網站解析時間,服務器連接時間,下載速度,http狀態,GZIP情況,文件大小等信息。 打開這個