Time of Update: 2018-07-26
#include <iostream>#include <cmath>#include "stdio.h"#include "stdlib.h"#include "time.h"using namespace std;#define innode 8 //輸入結點數#define hidenode 4 //隱含結點數#define outnode 8
Time of Update: 2018-07-26
本文主要講了如何使用c++來構建一個二叉樹類,以及一些功能演算法的實現。文中大部分函數的思想都是遞迴,其中賦值運算子多載有傳統寫法和現代寫法兩個版本,層序遍曆是非遞迴,前、中、後序遍曆有遞迴和非遞迴兩個版本。 1、建構函式(遞迴) 2、拷貝建構函式(遞迴) 3、解構函式(遞迴) 4、賦值運算子多載(傳統/現代) 5、前中後序遍曆(遞迴/非遞迴) 6、層序遍曆(非遞迴) 7、尋找第k層結點個數(遞迴) 8、精確尋找值為x的結點,並返回當前結點的指標(遞迴) 9、
Time of Update: 2018-07-26
轉載地址:http://blog.csdn.net/wanghaobo920/article/details/7674631 前言
Time of Update: 2018-07-26
參考連結:http://blog.csdn.net/cjbct/article/details/53613436 AVL樹中,最重要的便是讓樹重新平衡,我們稱個過程為旋轉。旋轉包括四種,主要是由於插入位置的原因導致的。旋轉的過程可以看代碼中的注釋部分(569行-639行),有詳細的解釋。 這次編寫的過程中,將C++模板類的定義了和函數實現進行了分開(但是仍然在標頭檔中),遇到了比較多的問題。先看看代碼,然後對裡面我遇到的問題進行總結。
Time of Update: 2018-07-26
胡適先生曾說:“發表是吸收的利器”,於是我寫下這篇文章。我看了一些電腦基礎,我感覺裡面的知識都沒有活力,於是,我希望用我的方式將電腦的工作機制正確地、簡潔地、有趣地講明白。這篇文章適用於沒有電腦基礎但希望瞭解電腦的人以及有一些電腦基礎但是對電腦缺乏一個整體認知的人。 背景
Time of Update: 2018-07-26
delete p;只是刪除指標p指向記憶體區,並不是刪除指標p,所以p還是可以用的。刪除null 指標所指向記憶體是可以的。 堆中的變數和對象時匿名的,沒有名稱,只能通過指標來訪問。 在堆中建立對象時,在分配記憶體的同時會調用類的建構函式,在刪除堆中對象時,會調用類的解構函式。 為了避免記憶體泄露,在刪除一個指標後應該將其其值賦為0。 常量指標是指標指向的記憶體地區地址不能改變,但是該記憶體位址裡儲存的值是可以改變的,比如int a; int * const p
Time of Update: 2018-07-26
這裡討論一下C&&C++的混合編程。主要參考了博文http://blog.csdn.net/skdkjzz/article/details/17073339;其實混合編程的方法在寫程式的時候很常用,比如Matlab、Python等於C、C++的混合編程,充分利用不同語言的長處或者要用到的庫檔案; 在C與C++的混合編程是,主要涉及到extern "c" 和C++檔案中_cplusplus; 一、extern“C”的作用 1
Time of Update: 2018-07-26
這幾天做了幾家公司的類比線上測評題,均有關于格雷碼的相關知識,有好一部分要運用到二進位與位元運算,這些我都不太熟,今天趁格雷碼把這些知識都記錄一下。 格雷碼的產生 相鄰格雷碼之間只有一位不同,這是為了防止轉換時多位同時變化而造成的延時的影響。具體定義如下。 在一組數的編碼中,若任意兩個相鄰的代碼只有一位位元不同,則稱這種編碼為格雷碼(Gray
Time of Update: 2018-07-26
直接上代碼: #include<iostream>#include<vector>using namespace std;int main(){ //定義被卷積的矩陣(其實是一個數組,數組元素的個數8*8) int const map = 8; float A[map*map] = { 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5
Time of Update: 2018-07-26
參考: 1、https://docs.opencv.org/3.2.0/ 2、https://github.com/opencv/opencv/ Basic Drawing 使用cv :: Point在映像中定義2D點。 使用cv :: Scalar和它為什麼有用 使用OpenCV函數cv :: line繪製一條線 使用OpenCV函數cv :: ellipse繪製一個橢圓 使用OpenCV函數cv :: rectangle繪製一個矩形
Time of Update: 2018-07-26
上篇文章看了一下C&&C++語言標準的發展,本文接著來分析一下嵌入式編程中C++語言的應用;其實基於ARM處理器的話,對於C/C++支援都很到位(使用gcc/g++編譯工具);相對於面向過程的C語言編程,物件導向的C++實現更抽象;本系列的文章都是圍繞Ti達芬奇處理器展開的: 一、C++概述 1.嵌入式開發中為什麼選擇C++語言。 (1)面向過程編程的特點 C語言特點:C語言是在實踐的過程中逐步完善的
Time of Update: 2018-07-26
由於作業系統記憶體配置的不同,導致軟體開發過程中,需要編譯不同版本的軟體,此處以VS為例。 1、編譯器根據需要選擇不同的編譯環境: X86和win32位32位程式,X64為64位程式,可以選擇不同的編輯條件形成不同位的軟體。 2、代碼中的基本的資料類型,會根據作業系統的位元分配記憶體大小: 如int型在32位作業系統為4位元組,在64位系統為8位元組 因此在64位上對int型資料操作,編譯產生32的程式,有可能導致int型越界,軟體出現問題
Time of Update: 2018-07-26
#include <iostream>using namespace std;void swap(int &a, int &b){ int temp; temp = a; a = b; b = temp;}void bubbleSort(int * x, int N){ for (int i = 0; i < N; i++) { for (int j = 1; j < N-i; j++) {
Time of Update: 2018-07-26
隱式轉換: 不需要做任何工作,也不需要編寫代碼。例: var1=var2; 類型 可以顯隱示轉換為 byte short,ushort,int,uint,long,ulong,float,double,decimal sbyte short,int,long,float,double,decimal
Time of Update: 2018-07-26
從剛開始學習C語言的時候,就開始使用各種IDE,例如CodeBlocks,visual studio等等。那麼,如果不使用IDE的話,如何在windows控制台下編譯以及運行我們寫好的c語言程式呢。
Time of Update: 2018-07-26
目前的解決方案可以歸為以下三類: 1、自己動手寫:以'.'將IP字串分割成子串,再依次判斷每個子串的每個字元是否都是數字,最後轉換成值,判斷是否在0~255的範圍。 /* 功能: 判斷IP地址是否有效 介面函數: booli sIPAddressValid ( const char * pszIPAddr ) 輸入: pszIPAddr 字串 輸出: true 有效IP地址,false,無效的IP地址 約束:
Time of Update: 2018-07-26
用了快一年的STL庫,決定寫一下這一年的使用心得與總結。 1、概述 個人覺得 STL == {演算法,容器,迭代器}; 類型 標頭檔 演算法 include < algorithm > 迭代器 include < iterator > 容器 include< map/
Time of Update: 2018-07-26
關於邊緣改進全域閾值處理基本實現是: 1.先計算其邊界,利用拉普拉斯或者梯度變換都以。 2.計算變化後邊界映像的絕對值 3.指定一個閾值(一般以百分比的形式指定,比如我指定90%,如果存在有灰階k,灰階小於K的像素總數佔全部像素的90%,那麼K就是我們要求的灰階) 4.對2中計算完的映像進行閾值變換,轉化為2值映像 5.用4中計算得到的二值映像乘原始映像。 6.計算5中計算的到的映像中灰階大於0的長條圖。 7.對6中得到的長條圖進行全域分隔。
Time of Update: 2018-07-26
一、首先一個問題是:為什麼需要static。 1、有時程式員會有一種需求:就是我想寫的變數只在我的當前檔案能訪問。不希望別的檔案會訪問到我的變數。 這時就可以定義static變數。這時static的作用是( 限制了全域變數的範圍)。 2、有時也會有其他的需求:就是我想有個函數內定義了自己的局部變數,但是我想函數執行完之後這個變數不會消失。 static解決這個問題。這時static作用是( 拓展了局部變數的生命週期)。 二、static:靜態,有兩層含義
Time of Update: 2018-07-26
map常用的方法主要有: insert,erease,size,count,begin,end,find,clear,empty insert方法: 在map中插入一個元素,map中記錄的元素通常為索引值對,所以,在儲存時會把,鍵和值封裝成pair然後進行插入,例如:phone.insert(pair<string,string>(name,number))