Time of Update: 2018-12-03
線程由兩部分構成:線程核心對象:作業系統用它來對線程實施管理。核心對象也是系統用來存放線程統計資訊的地方。線程堆棧:它用於維護線程在執行代碼時需要的所有函數參數和局部變數。 我們必需要知道一個事實-----進程(WINDOWS中)是不能被調度的。通常所說的調度,都是對線程而言的。進程僅僅是線程的容器,是系統統分配資源的單位。
Time of Update: 2018-12-03
/* hdu 1754 一道簡單的線段樹運用*/#include <cstdio>#define maxn 200005using namespace std;int n,m;int num;struct Node{ int l,r,max,mid;// mid=(l+r)/2;}node[maxn*4];void build(int x,int y, int i){// printf("i:%d x:%d y:%d\n",i,x,y);
Time of Update: 2018-12-03
關於VOID Sleep(DWORD
Time of Update: 2018-12-03
/* hdu 1166 跟1754是一樣的 線段樹*/#include <cstdio>#include <cstring>#define maxn 50005using namespace std;struct Node{ int l,r,sum;}node[maxn*3];int T;int n;void build(int x,int y, int i){ node[i].l=x; node[i].r=y;
Time of Update: 2018-12-03
WINDOWS中定義了一個CONTEXT結構,該結構包含了特定處理器上的寄存器資料。系統使用CONTEXT結構執行各種內部操作。目前,已經存在為Intel、MIPS、Alpha和PowerPC處理器定義的CONTEXT結構。若要瞭解這些結構的定義,可以去看WinNT.h。該結構並沒有說明結構體內的成員,也沒有描述這些成員是誰,因為這些成員要取決於WINDOWS運行在哪個平台上。在WINDOWS定義的所有資料結構中,CONTEXT結構是特定於CPU的唯一結構。 在CONTEXT結構中,它包含了主機
Time of Update: 2018-12-03
//貝神傑作,僅作記錄,以後學習#define GDIPVER 0x0110 //定義高版本的GDI+(1.1)#include <tchar.h>#include <windows.h>#include <ObjIdl.h>#include <stdio.h>#include <GdiPlus.h>#pragma comment(lib,"GdiPlus.lib")using namespace Gdiplus;#include
Time of Update: 2018-12-03
小學弟的一個問題,不錯額#include<stdio.h>void main(){char *ch1[5];int i;char **p;p=ch1;for(i=0;i<5;i++)scanf("%s",p+i);for(i=0;i<5;i++)printf("%s",*(p+i));}指標沒有分配空間c:malloc#include<stdio.h>#include<stdlib.h>int main(){char *ch1[2];int
Time of Update: 2018-12-03
CPU為了更快的執行代碼。於是當從記憶體中讀取資料時,並不是唯讀自己想要的部分。而是讀取足夠的位元組來填入快取行。根據不同的CPU,快取行大小不同。如X86是32BYTES,而ALPHA是64BYTES。並且始終在第32個位元組或第64個位元組處對齊。這樣,當CPU訪問相鄰的資料時,就不必每次都從記憶體中讀取,提高了速度。 因為訪問記憶體要比訪問快取用的時間多得多。 但是,多核發達的年代。情況就不能那麼簡單了。試想下面這樣一個情況。1、
Time of Update: 2018-12-03
/* poj 2533 將每個數看做DAG圖上的一個節點 d[i]代表到i點的最長路徑 求所有d[i]中最大的那個 i點的前j個中,如果num[j]<num[i],即j到i點有向*/#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define maxn 1004int nums[maxn];int d[maxn];int
Time of Update: 2018-12-03
當我們要進行訊息處理的時候,通常需要寫出一系列的訊息函數,然後再將這些函數指標賦值給一個函數指標數組。當要使用的時候,根據訊息編號確定在數組中的位置。 在C++中,成員函數指標寫著很不順手。。於是做了一個基類。。這個基類有個限制,就是只能處理兩個參數的訊息處理函數。第一個是訊息ID,第二個就是訊息內容。不過多數情況下已經夠用。。。 #include "stdafx.h"#include <iostream>#include <stdio.h>#include
Time of Update: 2018-12-03
/* CodeForces 131C 組合數學*/#include <cstdio>#include <cmath>using namespace std;__int64 cal(__int64 a, __int64 b){ __int64 tem=1; for(int j=1;j<=b; j++) { tem=tem*a/j; a--; } // printf("%d\n",tem);
Time of Update: 2018-12-03
當你需要建立、開啟和操作各種核心對象的時候,系統要建立和操作若干類型的核心對象,強如存取符號對象、事件對象、檔案對象、檔案對應物件、I/O完成連接埠對象、工作物件、信箱對象、互斥對象、管道對象、進程對象、信標對象、線程對象和等待計時器對象等等。這些對象都是通過調用函數來建立的。例如:CreateFileMapping函數可使系統能夠建立一個檔案對應物件。
Time of Update: 2018-12-03
/* poj 3070 二分冪+矩陣乘法 要注意代碼的簡潔 把功能塊單獨寫個函數*/#include <cstdio>#include<cmath>#define mod 10000using namespace std;__int64 n;__int64 c[2][2];//__int64 f[maxn]={0,1};__int64 cal(__int64 a[][2],__int64 b[][2]){ __int64 sum;
Time of Update: 2018-12-03
一個軟渲染器至少應該提供3D---》2D的變換,紋理映射等功能,不然連都不好截。由於用習慣了DX,所以結構上應該和DX有點神似!!而在資料處理方式上,我還是覺得OPENGL的爽,省了一堆BUFFER。哈哈!下面是暫訂渲染器結構,大概如下: Device:由於是一個軟渲染,所以,“裝置”是一個抽象出來的東西。通過它我們能夠操作資料的繪製,就像我們真正在操作一個圖形裝置一樣! Graphic
Time of Update: 2018-12-03
1、進程核心物件控點表2、建立與關閉核心對象3、進程間核心物件控點的共用 1、進程核心物件控點表當一個進程初始化時,系統會為它分配一張核心物件控點表。這個表只用於管理核心物件控點。GDI和使用者物件不會影響到這張表。表中的每一項有4個域。 即控制代碼ID,對象記憶體位址,訪問屏蔽位,標誌位。 當一個進程初始化時,控制代碼表為空白。
Time of Update: 2018-12-03
/* hdu 2795 線段樹 在更新環出了問題 導致被修改子節點的父節點沒有更新 (最後導致逾時) 這裡我用了位元運算 但是沒有變快。。。反而慢了10ms; 教訓:發現有錯誤之後 測試構造的線段樹有沒有錯,再查線段樹是否在更新的時候更新不完全*/#include <cstdio>using namespace std;#define maxn 200006int h,w,n;int ans;int flag;struct Node{
Time of Update: 2018-12-03
先看這樣的代碼 1void MyNew(int *p) 2{ 3 p = new int; 4} 5 6int main() 7{ 8 int *p = NULL; 9 MyNew(p);10}開始寫了一篇函數中分配記憶體的問題,通過說明他們產生了拷貝,而導致p不能成功分配。但並未提出事實根據,下面我們來仔細看看具體原因。我們需要弄清兩點:1、main函數中的p與MyNew函數中的p是不是一樣;2、如果不一樣,是怎麼導致了不一樣的。第一點很好看,我們可以在編譯器(VC環境,我用
Time of Update: 2018-12-03
A Knight's JourneyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 22481 Accepted: 7598DescriptionBackground The knight is getting bored of seeing the same black and white squares again and again and has decided to make a journey around the
Time of Update: 2018-12-03
/* hdu 1026 bfs+優先隊列+記錄路徑 記錄路徑的時候要注意*/#include <cstdio>#include <queue>#include <cstring>using namespace std;#define maxn 105int n,m;int dir[4][2]={{-1,0},{0,1},{0,-1},{1,0}}; //走路的方向不要錯,不能寫成{{-1,0}{1,0},{0,-1},{0,1}},struct
Time of Update: 2018-12-03
/* poj 2533 兩種解法 第一種:狀態轉移方程:dp[i]=max(dp[j],mmax);*/#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define maxn 1004#define INF 9999999int nums[maxn];int dp[maxn];int map[maxn][maxn];int main(){