Time of Update: 2018-07-25
鏈表中的各對象按線性順序排列,而其順序是由各個對象裡的指標所決定的。 鏈表有多種形式,它可以是單連結的或者雙連結的,可以是已排序的或未排序的,可以是迴圈的或非迴圈的。 定義的結構體以及函數如下: typedef struct SINGLE_LINKED_LIST{ Node * head; Node * tail;} SLL;typedef struct CIRCULAR_SINGLE_LINKED_LIST{ Node * head; Node * tail;}
Time of Update: 2018-07-25
關鍵字explicit,可以阻止不應該允許的經過轉換建構函式進行的隱式轉換的發生。聲明為explicit的建構函式不能在隱式轉換中使用。 C++中, 一個參數的建構函式(或者除了第一個參數外其餘參數都有預設值的多參建構函式), 承擔了兩個角色。 1 是個構造器 2 是個預設且隱含的類型轉換操作符。 所以, 有時候在我們寫下如 AAA = XXX, 這樣的代碼, 且恰好XXX的類型正好是AAA單參數構造器的參數類型, 這時候編譯器就自動調用這個構造器,
Time of Update: 2018-07-25
初學C語言,有許多搞不明白的地方。編程,最重要的就是實踐。今天,我偶然間看到書上的練習,做了一個能整齊地輸出n,n的平方,n的立方的小程式。首先,我先用虛擬碼設計程式: 提示使用者輸入表格上限,下限或退出 迴圈:檢測輸入是否正確{ 測試字寬 //為了輸出更好看 按照字寬列印表頭 迴圈:按照字寬輸出資料 提示使用者輸入表格上限,下限或退出 }
Time of Update: 2018-07-25
與引用一樣,可以令指標指向常量或非常量。指向常量的指標不能用於改變其所指對象的值。要想存放常量對象的地址。只能使用指向常量的指標: constdoublepi=3.1.4;//pi是一個常量,它的值不能被改變double*ptr=&pi//錯誤:ptr是一個普通指標constdouble*cptr=&pi//正確:cptr可以指向一個雙精確度常量*cptr=42//錯誤:不能*cptr賦值,因為它是用const修飾的指標常量,不能被修改
Time of Update: 2018-07-25
單例模式即實現單例類,即系統中一個類只有一個執行個體,而且該執行個體易於外界訪問。這樣方便對執行個體個數進行控制並節約系統資源。 而單例常用與一些非局部靜態對象,對於這些對象,程式難以控制,對於這些存在與全域,且一般持久存在的對象,有時需要按照一定約束或順序來進行初始化,而初始化這些對象如果不使用單例方法的話會極度不安全。這個時候就要使用單例模式來解決這個問題。 實現單例的方法有很多,最簡單的一個是將對象放入函數中作為其靜態成員: class
Time of Update: 2018-07-25
一、引用 1.基本引用文法 /*變數引用*/int i = 10;int & s = i;//聲明引用變數s,引用了i,則後續對s或者i變動都會導致s和i的值變動。此時s和i等價//聲明一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料類型,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。故:對引用求地址,就是對目標變數求地址。&s與&i相等。從而減少記憶體空間和提高運行效率。這就是引用最大的好處。
Time of Update: 2018-07-25
本文主要介紹C/C++編程中兩個巧用異或解決問題的方法。 一、巧用異或進行取反運算 假設安排一個周健身計劃表,每天的可選項目包括:running,riding,swimming。現用一個enum表示周一到周日,如下: enum Day{ Monday = 0x1, Tuesday = 0x2, Wednesday = 0x4, Thursday = 0x8, Friday =
Time of Update: 2018-07-25
首先我們知道 const int p 與 int const *p 是一樣的,即 *p 是常量;而 int const p 跟上面是不一樣的,即 p 是常量;我們知道引用只是一個別名,與變數共用儲存空間,並且必須在定義的時候初始化,而且不能再成為別的變數的別名,這讓我們想到什麼呢,貌似跟 int * const p 的性質很像。 其實引用的底層就是用const指標來實現的。下面舉個小例子: #include <iostream>using namespace
Time of Update: 2018-07-25
1.如:BaseItem item=sender as BaseItem; as指將sender顯示轉換BaseItem類型 相當於: BaseItem
Time of Update: 2018-07-25
1.指標和引用 引用必須賦初始值,沒有空的,而指標可以為空白 指標可以重新賦值,但引用總是指向最初的那個對象 當知道需要指向某個東西且不會指向其他東西時候,或者是實現操作符無法使用指標時候,選用引用,否則使用指標。 #include <bits/stdc++.h>using namespace std;int main() { string s1("fsdfsaf"); string
Time of Update: 2018-07-25
C++ :: STL :: algorithm 1.sort(複雜度O(n*log(n))) 排序演算法無疑是用的最多的演算法之一,下面介紹STL中對於sort的用法: 1.1 普通數組排序,從小到大 如: 對 44 21 44 12 7 23 39 9 22 22 38 23 14 26 47 12 排序sort(a,a + n);//這是對[0,n)區間進行排序預設從小到大sort(a + l,a + r);//這是對[l,r)區間進行排序預設從小到大
Time of Update: 2018-07-25
國慶閑來看C++,遇到C語言的一個問題,覺得很有趣。 "C語言中有string類型變數嗎?"這裡的 string 有 二 義性。(1) 如果 string 是普通詞彙,“C語言中有字元類型變數嗎”, 答,有。 字元類型 用 char 聲明。char str[]="This is a string"; (2) 如果 string 是專用詞彙,“C語言中有string類型變數嗎”,答,沒有。string 是 類,是 class,
Time of Update: 2018-07-25
前序和中序遍曆都實現了,後序線索化還不是很明白。如有大神看到,望指正。不勝感激。 // 中序線索二叉樹實現.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include<iostream>#include<stdio.h>#include<math.h>using namespace std;#define ElementType
Time of Update: 2018-07-25
1、解構函式的定義 解構函式(destructor) 與建構函式相反,當對象結束其生命週期時(例如對象所在的函數已調用完畢),系統自動執行解構函式。解構函式往往用來做“清理善後” 的工作(例如在建立對象時用new開闢了一片記憶體空間,delete會自動調用解構函式後釋放記憶體) C++當中的解構函式格式如下: class <類名>{ public: ~<類名>();};<類名>::~<類名>(){ //函數體};
Time of Update: 2018-07-25
實現如下: #include <stdio.h>#include <stdlib.h>#define SIZE 20void bubble_sort(int array[], const int size);void swap(int *n1, int *n2);void printArray(int array[], const int size);int main(int argc, char const *argv[]){ int array[SIZE];
Time of Update: 2018-07-25
一、C++中的引用: 引用引入了對象的一個同義字。定義引用的表示方法與定義指標相似,只是用&代替了*。引用(reference)是c++對c語言的重要擴充。引用就是某 一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。其格式為:類型 &引用變數名 = 已定義過的變數名。 引用的特點: ①一個變數可取多個別名。 ②引用必須初始化。 ③引用只能在初始化的時候引用一次 ,不能更改為轉而引用其他變數。 1、基礎引用 #include<stdio.h&
Time of Update: 2018-07-25
轉自:https://www.cnblogs.com/luolizhi/p/5746775.html 1、cin>> 用法1:最基本,也是最常用的用法,輸入一個數字: #include <iostream> using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<endl; } 輸入:2[斷行符號]3[斷行符號] 輸出:5
Time of Update: 2018-07-25
17、C/C++ strlen(str)和str.length()和str.size()都可以求字串長度。 其中str.length()和str.size()是用於求string類對象的成員函數 strlen(str)是用於求字元數組的長度,其參數是char*。 18、C/C++ 中字母的大小寫轉換 方法一:ASCII 碼 cin >> i;if ((i>=65)&&(i<=90)) //if(a[i] >= 'A'&&
Time of Update: 2018-07-25
Bigint Multiplication 時間限制:10000ms 單點時限:1000ms 記憶體限制:256MB 描述 Given 2 nonnegative integers a and b, calculate a × b. 輸入 One line with 2 integers a and b separated by a single space. 0 ≤ a, b ≤ 10100. 輸出 The value of a ×
Time of Update: 2018-07-25
一、遇到問題: 今天寫代碼的是遇到想對vector進行排序的問題,隱約記得std::sort函數是可以對vector進行排序的,但是這次需要排序的vector中壓的是自己定義的結構體(元素大於等於2),想以其中某一個元素進行正序或逆序排序,則不能直接使用sort函數。 二、解決方案: 1.C++中當 vector 中的資料類型為基本類型時,我們調用std::sort函數很容易實現