EvoTalk

Posts Tagged ‘cpp

30 七月, 2009

Sort Map Value

Posted by: asd In: C++| Code Snippet| 程式設計

use stl set to simulate map
view plain

CODE:

#include <iostream>

#include <vector>

#include <algorithm>

#include <set>

#include <map>

using namespace std;

 

class compare

{

public:

 

 //the error is over here

 bool operator()(pair<int, int> p1, pair <int, int> p2) const

 {

  if (p1.second == p2.second)

   return p1.first <p2.first;

  else

     return p1.second <p2.second;

 }

};

 

typedef set<pair<int, int>, compare> MMap;

 

void main(int argc, char* argv[])

{

 MMap D;

 D.insert(make_pair<int, int>(1, 10));

 D.insert(make_pair<int, int>(2, 2));

 D.insert(make_pair<int, int>(3, 2));

 D.insert(make_pair<int, int>(4, 3));

 D.insert(make_pair<int, int>(5, 6));

 

 MMap::const_iterator iter(D.begin());

 MMap::const_iterator [...]

Tags:

15 一月, 2009

Replace strtok Function

Posted by: asd In: C++| Code Snippet| 程式設計

strtok is a non-thread safe function
在 unix 平台下有 strtok_r 可替代。
windows 需要實作一個
strtok_r  fnnction, reference General Programming Concepts:
Writing and Debugging Programs
view plain

CODE:

char *strsep(char **stringp, const char *delim)

{

char* strtok_r(char *  s1, const char *  s2,  char **  lasts)

{

  char *ret;

 

  if (s1 == NULL)

    s1 = *lasts;

  while(*s1 && strchr(s2, *s1))

    ++s1;

  if(*s1 == '\0')

    return NULL;

  ret [...]

Tags:

03 十二月, 2008

C List Files on Windows

Posted by: asd In: C++| Code Snippet| 程式設計

c 列舉檔名
view plain

C++:

#include   <stdio.h>

#include   <io.h>

#include   <time.h>

 

void main(void)

{

    struct   _finddata_t   c_file;

    long   hFile;

 

    if(   (hFile = _findfirst(   "*.* ",   &c_file   )) == -1L)

        printf(   "No   *.c   files   in   current   directory!n "   );

    else

    {

        [...]

Tags: ,

02 十二月, 2008

Get Icon by File Type

Posted by: asd In: C++| Code Snippet| 程式設計

根據檔案的副檔名,取得 icon 圖案
view plain

C++:

// 傳入的 FileName 可為 ".doc" 、".pdf"、".rar" ....

void __fastcall TForm1::GetIcon(AnsiString FileName)

{

   SHFILEINFO sfi;

   SHGetFileInfo(

                  FileName.c_str(),

                  FILE_ATTRIBUTE_NORMAL,

                  &sfi,

                  sizeof(SHFILEINFO),

                  SHGFI_ICON

                );

   TIcon* picon = [...]

Tags: ,

轉貼自「計算機科學論壇 」
view plain

C++:

// 在C和C++有三種定義結構的方法。

typedef struct {

int data;

int text;

} S1;

 

// 這種方法可以在c或者c++中定義一個S1結構

struct S2 {

int data;

int text;

};

 

// 這種定義方式只能在C++中使用,而如果用在C中,那麼編譯器會報錯

struct {

int data;

int text;

} S3;

 

//這種方法並沒有定義一個結構,而是定義了一個s3的結構變量,編譯器會為s3內存。

void main()

{

S1 mine1; // OK , S1 是一個類型

S2 mine2; // OK, S2 是一個類型

S3 mine3; // OK, S3 不是一個類型

S1.data = 5; // ERROR S1 是一個類型

S2.data = 5; // ERROR S2 是一個類型

S3.data = 5; // OK S3是一個變量

}

 

// 另外,對與在結構中定義結構本身的變量也有幾種寫法

struct S6 {

S6* [...]

Tags: