原创 類中的const成員

#include<iostream> using namespace std; class Base { const int a; public: Base(int _a):a(_a){} //Base(int _a) { a

原创 控制整數以10,16,8進制輸出

我們可以分別使用dec,hex,oct控制符來實現。 下面的函數調用將cout對象的計數系統格式狀態設置爲16進制: hex(cout); 完成上述設置後,程序將以16進制打印數值,直到將格式設置爲其他選項爲止。注意,控制符不是成員函數,

原创 線性表--順序表

#define _CRT_SECURE_NO_DEPRECATE //#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 #include<iostream> #include<strin

原创 循環單鏈表實現約瑟夫環問題

問題: 編號爲1,2,3,,,n的n個人按順時針圍坐一起,每人有一個正整數密碼。一開始任選一個整數作爲報數上限值m,從第一個人開始按順時針向自1開始順序報數,報到m的停止,出列,並把出列的人手中的密碼作爲新的m值,從接下來的下一個人接着從

原创 vector的reserve()和resize()

vector 的reserve()增加了vector的capacity,但是它的size沒有改變!resize()改變了vector的capacity同時也增加了它的size! reserve(n) 預分配n個元素的存儲空間。 rese

原创 迭代器

1.迭代器 容器迭代器的作用類似於數據庫中的遊標(cursor),它屏蔽了底層存儲空間的不連續性,在上層使容器元素維持一種“邏輯連續”的假象。不可把迭代器與void*和“基類指針”這樣的通用指針混淆。 指針代表真正的內存地址,即對象在內存

原创 線性表--單鏈表

#define _CRT_SECURE_NO_DEPRECATE //#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 #include<iostream> using namespa

原创 棧-表達式求值

/*棧的順序存儲-表達式求值*/ //假設輸入字符不超過20個,運算數字都是非負的整數,即0,1,2,,,,等等 // #include<iostream> #include<stdlib.h>//爲了使用atoi函數,具體函數用法及作用

原创 編譯,運行

認識C編譯執行過程,是C學習的開端。 簡單說C語言從編碼編譯到執行要經歷一下過程:   C源代碼 編譯---->形成目標代碼,目標代碼是在目標機器上運行的代碼。 連接---->將目標代碼與C函數庫相連接,並將源程序所用的庫代碼與目標代碼合

原创 const

<strong><span style="font-size:14px;">#define _CRT_SECURE_NO_DEPRECATE //#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAME

原创 C++常見容器概述

以前的11個容器分別是 deque,list,queue,priority_queue,stack,vector,map,multimap,set,multiset,bitset C++11新增: array,forward_list,u

原创 define

#define是C語言中提供的宏定義命令,其主要目的是爲程序員在編程時提供一定的方便,並能在一定程度上提高程序的運行效率,但學生在學習時往往不能 理解該命令的本質,總是在此處產生一些困惑,在編程時誤用該命令,使得程序的運行與預期的目的不一

原创 內存管理與效率

1.使用reserve()函數提前設定容量大小,避免多次容量擴充操作導致效率低下。       關於STL容器,最令人稱讚的特性之一就是是隻要不超過它們的最大大小,它們就可以自動增長到足以容納你放進去的數據。(要知道這個最大值,只要調用名

原创 const_iterator

const_iterator對象,它可以指向別的元素,但不能修改其指向的元素,可以不初始化 #include<iostream> #include<vector> using namespace std; int main() {

原创 右值引用C++11

       C++ 11中引入的一個非常重要的概念就是右值引用。理解右值引用是學習“移動語義”(move semantics)的基礎。而要理解右值