Time of Update: 2018-08-23
怎麼判斷記憶體對齊規則,sizeof的結果怎麼來的,請牢記以下3條原則:(在沒有#pragma pack宏的情況下,務必看完最後一行) 1:資料成員對齊規則:結構(struct)(或聯合(union))的資料成員,第一個資料成員放在offset為0的地方,以後每個資料成員儲存的起始位置要從該成員大小或者成員的子成員大小(只要該成員有子成員,比如說是數組,結構體等)的整數倍開始(比如int在32位機為4位元組,則要從4的整數倍地址開始儲存。 2:
Time of Update: 2018-08-23
拷貝建構函式是類中的一個特殊的成員函數,同時拷貝建構函式也是建構函式的一種,其函數名與類名相同,無傳回型別,其作用也是為類的成員初始化以及為對象的構造分配儲存空間,不同的是,拷貝建構函式的參數只有一個,且必須為該類對象的引用。 拷貝建構函式只有在使用一個對象初始化另外一個對象時才會使用,讓我們從簡單的說起: int a = 10; int b = a; cout <<
Time of Update: 2018-08-23
在C++中,類的對象建立分為兩種,一種是靜態建立,如A a;另一種是動態建立,如A* ptr=new A;這兩種方式是有區別的。 靜態建立一個類對象,是由編譯器為對象在棧空間中分配記憶體,是通過直接移動棧頂指標,挪出適當的空間,然後在這片記憶體空間上調用建構函式形成一個棧對象。使用這種方法,直接調用類的建構函式。
Time of Update: 2018-08-23
struct BinaryTreeNode{int data;BinaryTreeNode *pLeft;BinaryTreeNode *pRight;};//擷取樹中的節點數int CountNode(BinaryTreeNode *pRoot){if(pRoot == NULL)return 0;else{return CountNode(pRoot->pLeft) + CountNode(pRoot->pRight) + 1;}}//擷取樹的高度int
Time of Update: 2018-08-23
646. 第一個獨特字元位置 題目: 給出一個字串。找到字串中第一個不重複的字元然後返回它的下標。如果不存在這樣的字元,返回 -1。 範例: 給出字串 s = "lintcode",返回 0。 給出字串 s = "lovelintcode",返回 2。 思路:簡單的hash應用。遍曆一次,紀錄每個字元出現的次數,再遍曆一次,次數大於1的字元就是答案。
Time of Update: 2018-08-23
記憶體足夠的情況: 可以使用類似quick sort的思想進行,均攤複雜度為O(n),演算法思想如下: • 隨機選取一個元素,將比它小的元素放在它左邊,比它大的元素放在右邊 • 如果它恰好在中位元的位置,那麼它就是中位元,可以直接返回 • 如果小於它的數超過一半,那麼中位元一定在左半邊,遞迴到左邊處理 • 否則,中位元一定在右半邊,根據左半邊的元素個數計算出中位元是右半邊的第幾大,然後遞迴到右半邊處理
Time of Update: 2018-08-23
申請 微軟學生KEY 1、這裡申請郵箱: https://domains.live.com/members ... ain=stu.xawl.edu.cn 第一次登入需要更改 密碼。 2、直接到這裡登入: https://www.dreamspark.com/ ,不要@msc ampus.cn帳號 3、進入後,選自己需要的 系統---點SIGN----點VERIFY。看見地圖,選Asia--china--Xi'an University
Time of Update: 2018-08-23
把只包含質因子2、3和5的數稱作醜數(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,習慣上我們把1當做是第一個醜數。 寫一個高效演算法,返回第n個醜數。 解法1: 判斷某個數是否為醜數,連續找到第n個醜數 #include <iostream>using namespace std;bool isUgly(int num){if(num < 1)return false;if(num == 1)return true;
Time of Update: 2018-08-23
題目: 不使用庫函數,寫出void memcpy(void *dst, const void *src, size_t count),其中dst是目標地址,src是源地址。 編程要點: 1、介面設計的通用性 2、考慮記憶體重疊和不重疊兩種情況下的拷貝順序 void myMemcpy(void *dst, const void *src, size_t count){assert((dst != NULL) && (src != NULL) &&
Time of Update: 2018-08-23
1。用演算法實現一個正整數的分解質因數。如90=2*3*3*5。5分 #include <iostream>using namespace std;int main(){int n, i = 2;cin >> n; cout << n << "=";while(n != 1){while(n % i == 0){if(n / i != 1)cout << i << "*";elsecout <&
Time of Update: 2018-08-23
1、臨界區只能用於對象在同一進程裡線程間的互斥訪問;互斥體可以用於對象進程間或線程間的互斥訪問。 2、臨界區是非核心對象,只在使用者態進行鎖操作,速度快;互斥體是核心對象,在核心態進行鎖操作,速度慢。 3、臨界區和互斥體在Windows平台都下可用;Linux下只有互斥體可用。 1、臨界區:通過對多線程的序列化來訪問公用資源或一段代碼,速度快,適合控制資料訪問。 2、互斥量:為協調共同對一個共用資源的單獨訪問而設計的。 臨界區(Critical Section)
Time of Update: 2018-08-23
蘋果的降速門引發了十幾單集體訴訟,隨後迫使它向公眾道歉並承諾使用者更換舊電池從原來的79美元降低到29美元,有人認為iPhone的出貨量可能會因此受影響,筆者卻認為這對它的影響應該會相當有限。
Time of Update: 2018-08-23
微軟2016校園招聘4月線上筆試題解(三) Sat 09 April 2016 by ictlxb Filed under C/CPP Tags cpp algorithm hihocoder If all you have is a hammer, everything looks like a nail. ---Maslow C. Demo Day Problem 時間限制:10000
Time of Update: 2018-08-23
AtCoder Regular Contest 093 C題題意:給定N個點,求每次去掉一個點後,依次走過剩餘每個點的距離和,最後需要返回起點。
Time of Update: 2018-08-23
循環參考: 引用計數是一種便利的記憶體管理機制,但它有一個很大的缺點,那就是不能管理循環參考的對象。一個簡單的例子如下:
Time of Update: 2018-08-23
斯特林公式是一條用來取n階乘近似值的數學公式。一般來說,當n很大的時候,n階乘的計算量十分大,所以斯特林公式十分好用,而且,即使在n很小的時候,斯特林公式的取值已經十分準確。 公式為: 斯特林公式的編程寫法:N。=sqrt(2*pi*N)*(N/e)^N;(pi=3.1415926=acos(-1.0),e=2.718) 斯特林公式的轉換:lgN。=(lg(2*pi)+lgN)/2+N*(lgN-lge);//+1即為長度。 通常求十進位長度將lg換為log10即可。
Time of Update: 2018-08-23
tcp/ip是一個協議簇,而不僅僅是指tcp和IP協議,這裡我們主要說一下傳輸層中的TCP協議 1:tcp、ip七層,四層模型 為什麼會有七層和四層模型,而為什麼又要設計出這麼多層呢。 網路資料在從發送到最後的接收端,中間牽扯到的過程非常的繁瑣,為了保證資料能夠到達目的地,又要保證系統處理資料不會過於複雜,所以採用了一種分而治之的思想,每一層只負責一部分功能,下層為上層提供服務,這樣每層各司其職,既不會讓實現過於複雜,又能保證資料的傳輸。
Time of Update: 2018-08-23
題目1 : Legendary Items 時間限制: 10000ms 單點時限: 1000ms 記憶體限制: 256MB 描述 Little Hi is playing a video game. Each time he accomplishes a quest in the game, Little Hi has a
Time of Update: 2018-08-23
1、一個商場進行抽獎活動,有兩個獎項,A獎項抽中的機率是1/6,B獎項抽中的機率是5/6,用C語言編碼實現這個抽獎程式。 #include <stdio.h>#include <time.h>#include <stdlib.h>//抽獎函數:1/6的機率返回true,5/6的機率返回falsebool draw(){int ran;srand( (unsigned)time(NULL) );ran = rand() % 6;if(0 == ran)
Time of Update: 2018-08-23
字串全排列擴充----八皇后問題 題目:在8×8的國際象棋上擺放八個皇后,使其不能相互攻擊,即任意兩個皇后不得處在同一行、同一列或者同一對角斜線上。下圖中的每個黑色格子表示一個皇后,這就是一種合格擺放方法。請求出總共有多少種擺法。 這就是有名的八皇后問題。解決這個問題通常需要用遞迴,而遞迴對編程能力的要求比較高。因此有不少面試官青睞這個題目,用來考察應聘者的分析複雜問題的能力以及編程的能力。