06 2012 档案
摘要:// TimerTest.cpp : Using STL functions//并集,交集,差集,根据bound获取特定子集#include "stdafx.h"#include <iostream>#include <string>#include <vector>#include <set>#include <algorithm>#include <iterator>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ const int
阅读全文
摘要:在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了string、vector、list、deque、set 是有序容器1.stringstring 是basic_string<char> 的实现,在内存中是连续存放的.为了提高效率,都会有保留内存,如string s= "abcd",这时s使用的空间可能就是2
阅读全文
摘要:// TimerTest.cpp : Using STL functions//#include "stdafx.h"#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;struct Review{ string title ; int rating ;};bool operator<(const Review &r1,const Review &r2);bool wors
阅读全文
摘要:之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作 为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题………首先,为了在我们的程序中使用string类型,我们必须包含头文件 。如下: #include //注意这里不是string.h string.h是C字符串头文件1.声明一个C++字符串声明一个字符串变量很简单: string Str;这样我
阅读全文
摘要:在进行多线程编程时,难免还要碰到两个问题,那就线程间的互斥与同步:线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步(下文统称为同步)。线程间的同步方法大体可分为两类:用户模式和内核模式。顾名思义,内核模式就是指利用系统内核对象的单一性来进行同步,使用时需要切换内核态与用户态,而
阅读全文
摘要:1 // MultiThreadTest.cpp : Defines the entry point for the console application. 2 // Thread 创建,挂起等 3 4 #include "stdafx.h" 5 #include<Windows.h> 6 #include<iostream> 7 #include<string> 8 using namespace std; 9 DWORD WINAPI myThread(LPVOID argv);//声明一个线程函数10 int _tmain(int
阅读全文
摘要:// WindowsSocketServer.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <Windows.h>#include <Winsock2.h>#pragma comment(lib,"Ws2_32.lib")using namespace std;#define PORT 8081#define IP_ADDRESS "172.16.20.181"DWORD WINAPI ClientThrea
阅读全文
摘要:bool CreateXmlFile(const char *szFileName){ //创建xml文件,szFileName为文件保存的路径,若创建成功返回true,否则false try { //创建一个XML的文档对象 TiXmlDocument *myDocument=new TiXmlDocument(); //创建一个Person 元素并连接 TiXmlElement *RootElement=new TiXmlElement("Persons"); myDocument->LinkEndChild(RootElement); //创建一个Person元
阅读全文
摘要:线程同步是多线程程序设计的核心 内容,它的目的是正确处理多线程并发时的各种问题,例如线程的等待、多个线程访问同一数据时的互斥,防死锁等。Win32提供多种内核对象和手段用于线程 同步,如互斥量、信号量、事件、临界区等。所不同的是,互斥量、信号量、事件都是Windows的内核对象,当程序对这些对象进行控制时会自动转换到核心 态,而临界区本身不是内核对象,它是工作在用户态的。我们知道从用户态转换到核心态是需要以时间为代价的,所以如果能在用户态就简单解决的问题,就可以不 必劳烦核心态了。 这里我要说的是两种用于C++的多线程同步类,通过对这两种类的使用就可以方便的实现对变量或代码段的加锁控制,从而.
阅读全文
摘要://////获取系统信息Demo///#include "stdafx.h"#include<windows.h>#include<conio.h>#include<tchar.h>#include<locale.h>#include"Reader.h"#include"Writer.h"#include<stdlib.h>#include<iostream>using namespace std;wchar_t* envVarStrings[]={ TEXT(&
阅读全文
摘要:// Writer.cpp#include"stdafx.h"#include <windows.h>#include <conio.h>#define BUF_SIZE 256wchar_t szName[30]=TEXT("Global\\MyFileMappingObject");wchar_t szMsg[30]=TEXT("Message from first process.");wchar_t chr[100]; int _tmain(){ HANDLE hMapFile; LPCTSTR pBu
阅读全文
摘要:1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 HANDLE handle; 4 wchar_t szFile[64] = L"kingdom_0,你好"; 5 unsigned long lWritten, lRead; 6 handle=CreateFile(L"D:\\Example.txt", FILE_ALL_ACCESS, FILE_SHARE_READ|FILE_SHARE_WRITE, 7 NULL, OPEN_ALWAYS...
阅读全文