http://blog.csdn.net/feimashenhua/article/details/6654995STL中的容器按儲存方式分為兩類,一類是按以數組形式儲存的容器(如:vector 、deque); 另一類是以不連續的節點形式儲存的容器(如:list、set、map)。在使用erase方法來刪除元素時,需要注意一些問題,以避免引起不可預知錯誤或崩潰。 在使用 list、set 或 map遍曆刪除某些元素時可以這樣使用 std::list<
void AnalyzeStr2Number(vector<int>& v, const string& str, const std::string& separator){v.clear();if (str.empty())return;std::string strTmp;int pos1 = 0;int pos2 = 0;for (; (pos2 = str.find(separator, pos1)) !=
2.使用 STL 中通用演算法或容器成員函數刪除元素的方法以上手工編寫 for 迴圈代碼刪除容器中元素的方法也有一些問題,如果判斷條件特別複雜,又有迴圈判斷的話,迴圈中間又有異常處理的話, ++itVect 的位置就要小心放置了,稍不留意就要出錯。所以手工編寫代碼刪除容器中元素的方法不太安全,代碼重複,也不夠優雅,要注意的地方很多。對於這種情況,可以考慮使用 STL 中通用演算法 remvoe() 和 remove_if() 幫忙。而 remvoe() 和 remove_if()
今天在改一個很大的程式,慢慢看,慢慢改。突然發現一個.c檔案,裡面什麼也沒有, 就幾個標頭檔,我一看,我靠,這不是把簡單的問題搞複雜了嗎,隨手刪掉那個c檔案。 結果不能編譯了,我靠: fatal error C1083: Cannot open precompiled header file: \'Debug/v13_3.pch\': No such file or directory 怎麼rebuild all都不行。 上網查了一下,才搞懂了: ----------------總結------
一、核心編程 二、多媒體 三、互連網 四、資料庫系統 首先,基本的資料結構、演算法,資料流、線程、物件導向設計概念,模式等。遊戲軟體本質上是一個即時軟體。玩家透過軟體,與機器或其它玩家互動。它需要眩目的聲光效果、流暢的使用者輸入、操作機制、網路資源等,這些項目的實作,都是與硬體高度相依的。因此,在底層技術的開發上,熟悉作業系統和開發環境比程式設計語言更重要。
該指令允許有選擇性的修改編譯器的警告訊息的行為指令格式如下:#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]#pragma warning( push[ ,n ] )#pragma warning( pop )主要用到的警告表示有如下幾個:once:只顯示一次(警告/錯誤等)訊息default:重設編譯器的警告行為到預設狀態1,2,3,4:
先貼代碼:#include "stdafx.h"#include <windows.h>#include <iostream>using namespace std;string GetValue(const char* lpbMapAddress, const char* sName);int main() { HANDLE hFile = CreateFile( TEXT("E:\\test.txt"),
traverse_dir.h#ifndef TRAVERSE_DIR_H#define TRAVERSE_DIR_H#include <vector>#include <string>using namespace std;#ifdef _WIN32 #include <io.h> #include <sys/types.h> #else#include <dirent.h>#endif #define _
實體記憶體和虛擬記憶體實體記憶體,在應用中,自然是顧名思義,物理上,真實的插在板子上的記憶體是多大就是多大了.看機器配置的時候,看的就是這個實體記憶體.如果執行的程式很大或很多,就會導致實體記憶體消耗殆盡.為瞭解決這個問題,Windows中運用了虛擬記憶體技術,即拿出一部分硬碟空間來充當記憶體使用量,當記憶體佔用完時,電腦就會自動調用硬碟來充當記憶體,以緩解記憶體的緊張.一個程式,不可避免地要用到虛擬記憶體,因為不頻繁執行或者已經很久沒有執行的代碼,沒有必要留在實體記憶體中,只會造成浪費;放在虛
void CMFCProjectView::OnTestTest(){std::vector<CString> v;TraverseDir(CString("F:\\HGUI\\HGUI"), v);#ifdef _UNICODEwofstream ofs;#elseofstream ofs;#endifofs.open("log.txt");if (ofs.is_open()){for (int i=0; i<v.size(); ++i){TCHAR* p =
有些時候,我們要求一個程式在系統中只能啟動一個執行個體。比如,Windows內建的播放軟體Windows Medea Player在Windows裡就只能啟動一個執行個體。原因很簡單,如果同時啟動幾個執行個體,卻播放不同的檔案,那麼聲音和映像就會引起混亂。在設計模式中,就有一個SINGLETON模式,該模式就是讓類只有一個執行個體。(關於SINGLETON模式,可以看我那篇《重讀《設計模式》之學習筆記(三)--SINGLETON模式的疑惑 》)。
ogre僅僅是個3dt圖形渲染引擎,要做3d遊戲,還需要的東西很多,比如物理,音效,網路(本教程內將不涉及) ,介面以及輸入(這裡咱們用ogre內建的cegui和ois),以及AI,呵呵,總之一個遊戲包含的東西太多,咱們這裡僅僅是入門教程,所以一一切從簡,但是都會設計到一點哈!對了,還有個很重要的要點,開發遊戲前,先要開發協助工具輔助,比如模型查看器,建模工具了,情境編輯器了,介面編輯等等一系列的工具,這樣才會使我們的遊戲事半功倍!恩,開始了!1. 介面庫:
使用諸如Direct3D這樣的渲染API在螢幕上渲染圖形時,就會碰到所謂的“透支”(指的是渲染全景造成的記憶體浪費)問題。當在螢幕上繪製交迭(重爹)的兩個或多個圖元時,就會出現透支。這些圖元有不同的位置,但在螢幕上渲染時,它們交迭在一起。因為Direct3D不知道要繪製的圖元的先後順序,所以會出現透支問題。Direct3D不僅不知道是哪個圖元遮住了哪個圖元,而且還不知道是哪個圖元部分遮住了其他物體。 解決透支問題的一個辦法是使用一種名為“深度緩衝或z緩衝”的緩衝。深度緩衝是一個後台緩
教你在30歲前有所成就的方法 第一條:一個目標一艘沒有航行目標的船,任何方向的風都是逆風1、你為什麼是窮人,第一點就是你沒有立下成為富人的目標2、你的人生核心目標是什嗎?傑出人士與平庸之輩的根本差別並不是天賦、機遇,而在於有沒目標。3、起跑領先一步,人生領先一大步:成功從選定目標開始4、賈金斯式的人永遠不會成功為什麼大多數人沒有成功?真正能完成自己計劃的人只有5%,大多數人不是將自己的目標捨棄,就是淪為缺乏行動的空想。5、如果你想在30歲以前成功,你一定在23至25歲之間確立好你的人生目標6、
#include<d3d9.h>#include<d3dx9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Template"#define WINDOW_WIDTH 640#define WINDOW_HEIGHT 480// Function
http://blog.csdn.net/starlee/article/details/945728
設定檔案或目錄的屬性,函數原型如下:BOOL SetFileAttributes( LPCTSTR lpFileName, DWORD dwFileAttributes); 參數: lpFileName:輸入參數,為需要設定檔案屬性的檔案或目錄。 傳回值: 返回BOOL值,表示是否成功。 使用說明: 檔案系統中對檔案屬性的表示使用了DWORD類型的資料,多個檔案屬性用“|”運算連在一起DWORD GetFileAttributes(
在D3D中,一共有三種基本圖元,分別是點、線和三角形。點是最簡單的圖元,由它可以構成一種叫點列(point list)的圖元類型。線是由兩個不重合的點構成的,一些不相連的線組成的集合就叫線列(line list),而一些首尾相連但不形成環路的線的集合就叫線帶(line strips)。同理,單獨的三角形集合就叫三角形列(triangle list),類似於線帶的三角形集合就叫三角形連環(triangle
http://blog.csdn.net/gouki04/article/details/6796173typeid可以擷取到一個對象或引用的確切類型,這在多態編程下非常有用。要使用typeid,首先確保你的編譯器開啟了運行時類型檢查(RTTI)。在visual studio中開啟該項目的"屬性頁面" -> "C/C++" -> "語言"修改"啟用運行時類型資訊"屬性為是即可今天在測試typeid的使用時,寫了小段代碼測試 view
修改view矩陣,例如:D3DXMATRIX g_ViewMatrix;float g_RotationAngle = 0.0f;g_RotationAngle += 0.0002f;if(g_RotationAngle >= 360) g_RotationAngle = 0.0f;D3DXMATRIXA16 w;D3DXMatrixRotationY(&w, g_RotationAngle);g_ViewMatrix *=