原子化字串

2021-04-22 18:01:22 字數 1236 閱讀 8618

在編譯器或者其它語言處理軟體的開發過程中,字串管理是非常重要的。

原子化字串可以提公升符號管理和檔名管理。

///

pimpl模式宣告

class

atomsimpl;

class

atoms;

///atoms string container實現

struct

atomsimplnode;

class

atomsimpl;

atomsimpl::atomsimpl():buckets(1), atom_count(0)

atomsimpl::~atomsimpl()}}

const

char *atomsimpl::intern(const

string &s)else}}

buckets.swap(new_buckets);

}size_t

hash_val = 7, len = s.size(), hidx = 0;

while(hidxsize_t

idx = hash_val % buckets.size();

atomsimplnode *tail = null; //

tricky to reduce insert code

if (buckets[idx])

}atomsimplnode *newnode = new atomsimplnode;

newnode->len = len;

newnode->hash_val = hash_val;

newnode->next = null;

newnode->s = new

char[len+1];

strcpy(newnode->s, s.c_str());

if (tail) else

++atom_count;

return newnode->s;

}const

char *atomsimpl::intern(const

char *s)

atoms::atoms()

atoms::~atoms()

const

char * atoms::intern(const

string &s)

const

char * atoms::intern(const

char *s)

字串格式化

sprintf snprintf snprintf std stringstream std strstream boost lexical cast boost format cstring format 1 sprintf 使用 sprintf 不安全,輕則破壞資料的準確性,重則程式崩潰。請看下...

Python 文件化字串

python有乙個很奇妙的特性,稱為 文件字串 它通常被簡稱為 docstrings docstrings是乙個重要的工具,由於它幫助你的程式文件更加簡單易懂,你應該盡量使用它。你甚至可以在程式執行的時候,從函式恢復文件字串!usr bin python filename func doc.py d...

字串初始化

在c語言程式設計中,當我們宣告乙個字串陣列的時候,常常需要把它初始化為空串。總結起來有以下三種方式 1 char str 10 2 char str 10 3 char str 10 str 0 0 第 1 2 種方式是將str陣列的所有元素都初始化為 0 而第 3 種方式是只將str陣列的第乙個元...