網頁

2017年10月6日 星期五

20171005資結程設

map是一種associated container。insert pair(key跟value)後可以利用find輸入key搜尋到相對應value。搜尋法為紅黑樹概念,complexity為log(n)。此外,也可以將key和value進行刪除或清空。
因為map的key不能重複,所以可以使用multimap來允許duplicate key的操作。

參考連結:
http://www.yolinux.com/TUTORIALS/CppStlMultiMap.html

strtok()是將一連串string藉由設定delimiters來分割出個別字串

example
/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}

使用方法:
在程式裡面會有兩次function call。第一次function call引數(argument)為string,為了擷取這些string,每個string的第一個character(不包含delimiter)被用來當作scan的起始位置。當scan到delimiter時,會分割string而且包含delimiter,然後scan到null character終結function。因為第一個function call有static pointer指向string,所以第二個function call當string被scan到delimiter時,會回傳NULL pointer。

前置處理器運算子(Preprocessor)
運算子動作
字串化運算子 (#)以雙引號將實際對應的引數括住
字元化運算子 (#@)以單引號造成對應的引數會將和視為字元 (Microsoft 專用)
語彙基元帶入的運算子 (##)允許做為實際引數的語彙基元會串連形成其他語彙基元
DEFINED 運算子簡化的語式是否正確文字在某些巨集的指示詞
前置處理器指示詞(Preprocessor Directive)

沒有留言:

張貼留言