C 程式設計小指南

2021-10-03 19:24:44 字數 3300 閱讀 4494

struct segresultcontext 

};

replace_all(remove_spaces(trim(text))), 巢狀著寫一起不行, 報錯, 換成三行來寫就ok了, 為什麼?

string rm_surplus_spaces

(const string &s)

string replace_all

(const string &s,

const string &old_value,

const string &new_value)

**塊的執行時長的測量方法, 利用std::chrono::high_resolution_clock, 單位為micro seconds (us) ,同時chrono類提供了不同時間單位的測量方法, 如ms, us, ns, s等

auto start_micro = std::chrono::high_resolution_clock::

now();

....code_block...

..auto ela_s1 = std::chrono::high_resolution_clock::

now();

long

long cost_s1 = std::chrono::duration_cast

(ela_s1-start_micro)

.count()

;cout <<

"cost in us : "

<<

to_string

(cost_s1)

<< endl;

如何正確讀取string中的每個字或字元? (當中英混合時, 每個字的長度, 有2-6個byte組成)

bool

read_by_word

(const std::string &input)

return

true

;}

對vector of 物件做, 基於某個成員變數做排序

struct person 

;inline

void

sort_vector

(std::vector

&people));

}int

main()

; person p2

; person p3

; vector people;

people.

push_back

(p1)

; people.

push_back

(p2)

; people.

push_back

(p3)

;sort_vector

(people)

;for

(auto v : people)

}

正則, 完全匹配, 並列印每個group匹配到的值

string s =

;regex re

(".*?(收件人|聯絡人|姓名)[\\s,:]+([^\\s,:])[\\s,]*(手機|**|號碼|聯絡|\\d+|$).*?");

std::smatch what;

std::

regex_match

(s, what, re)

;for

(size_t i =

0; i < what.

size()

;++i)

//或取指定的第幾個group

if(std::

regex_match

(s, what, re)

)

正則, 列印所有滿足表示式的值, 即使用regex_search (分別舉例返回第乙個匹配值和返回每個匹配值)

void

test_regex_search()

//第一種條理更清晰的寫法

sregex_iterator it

(test_str.

begin()

, test_str.

end(

), r)

; sregex_iterator it_end;

while

(it != it_end)

//第二種相等的簡潔寫法

for(sregex_iterator it

(test_str.

begin()

, test_str.

end(

), r)

, it_end; it != it_end;

++it)

cout << it-

>

str(

)<< endl;

}

讀本地檔案

std::string file_in =

"test.txt"

;std::ifstream ifile

(file_in.

c_str()

);if(

!ifile.

is_open()

)std::string line;

while

(getline

(ifile, line)

)

利用picojson.h來解析json資料, picojson.h可以搜google或github, 直接拷貝過來即可

#include

"picojson.h"

intmain()

";map features;

picojson::value v;

std::string err;

parse

(v, query.

begin()

, query.

end(),

&err);if

(!err.

empty()

||!v.is()

)const picojson::value::object& obj = v.get()

;for

(picojson::value::object::const_iterator it = obj.

begin()

; it != obj.

end(

); it++

)}

to be continued…

委託(C 程式設計指南)

委託 c 程式設計指南 委託是一種引用方法的型別。一旦為委託分配了方法,委託將與該方法具有完全相同的行為。委託方法的使用可以像其他任何方法一樣,具有引數和返回值,如下面的示例所示 c public delegate int performcalculation int x,int y 與委託的簽名 ...

委託(C 程式設計指南)

委託 c 程式設計指南 委託是一種引用方法的型別。一旦為委託分配了方法,委託將與該方法具有完全相同的行為。委託方法的使用可以像其他任何方法一樣,具有引數和返回值,如下面的示例所示 c 複製 public delegate int performcalculation int x,int y 與委託的...

屬性(C 程式設計指南)

屬性是這樣的成員 它們提供靈活的機制來讀取 編寫或計算私有欄位的值。可以像使用公共資料成員一樣使用屬性,但實際上它們是稱為 訪問器 的特殊方法。這使得資料在可被輕鬆訪問的同時,仍能提供方法的安全性和靈活性。在本示例中,類 timeperiod 儲存了乙個時間段。類內部以秒為單位儲存時間,但提供乙個稱...