[{"data":1,"prerenderedAt":3068},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci":2639,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci":3052,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci":3067},{"id":4,"title":5,"body":6,"canonicalPath":2621,"chapter":2622,"chapterSort":2623,"date":2624,"description":92,"docI18nKey":2625,"docKey":2626,"docRoot":2627,"docTitle":2628,"extension":2629,"i18nKey":2630,"isBlogPost":2631,"isWikiDoc":114,"isWikiIndex":2631,"layout":2632,"legacyPath":2633,"locale":2634,"localeSlug":2635,"meta":2636,"navigation":114,"path":2621,"seo":2637,"sourcePath":2633,"sourceStem":2630,"stem":2630,"wikiDepth":100,"__hash__":2638},"content/wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词.md","函数对象与谓词",{"type":7,"value":8,"toc":2614},"minimark",[9,14,18,22,29,50,55,62,65,70,81,86,672,678,681,686,689,692,696,709,712,717,1037,1042,1045,1048,1052,1474,1478,1481,1484,1487,1491,1496,1501,1512,1517,1528,1530,1535,1543,1548,1586,1590,1759,1763,1769,1771,1775,1780,1784,1822,1826,2216,2220,2223,2225,2229,2234,2239,2259,2263,2603,2607,2610],[10,11,13],"h2",{"id":12},"stl-函数对象","STL- 函数对象",[15,16,17],"h3",{"id":17},"函数对象",[19,20,21],"h4",{"id":21},"函数对象概念",[23,24,25],"p",{},[26,27,28],"strong",{},"概念：",[30,31,32,42],"ul",{},[33,34,35,36,39,40],"li",{},"重载",[26,37,38],{},"函数调用操作符","的类，其对象常称为",[26,41,17],{},[33,43,44,46,47],{},[26,45,17],{},"使用重载的()时，行为类似函数调用，也叫",[26,48,49],{},"仿函数",[23,51,52],{},[26,53,54],{},"本质：",[23,56,57,58,61],{},"函数对象(仿函数)是一个",[26,59,60],{},"类","，不是一个函数",[19,63,64],{"id":64},"函数对象使用",[23,66,67],{},[26,68,69],{},"特点：",[30,71,72,75,78],{},[33,73,74],{},"函数对象在使用时，可以像普通函数那样调用, 可以有参数，可以有返回值",[33,76,77],{},"函数对象超出普通函数的概念，函数对象可以有自己的状态",[33,79,80],{},"函数对象可以作为参数传递",[23,82,83],{},[26,84,85],{},"示例:",[87,88,93],"pre",{"className":89,"code":90,"language":91,"meta":92,"style":92},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Cstring>\n\n//1、函数对象在使用时，可以像普通函数那样调用, 可以有参数，可以有返回值\nclass MyAdd\n{\npublic :\n    int operator()(int v1,int v2)\n    {\n        return v1 + v2;\n    }\n};\n\nvoid test01()\n{\n    MyAdd myAdd;\n    cout \u003C\u003C myAdd(10, 10) \u003C\u003C endl;\n}\n\n//2、函数对象可以有自己的状态\nclass MyPrint\n{\npublic:\n    MyPrint()\n    {\n        count = 0;\n    }\n    void operator()(string test)\n    {\n        cout \u003C\u003C test \u003C\u003C endl;\n        count++; //统计使用次数\n    }\n\n    int count; //内部自己的状态\n};\nvoid test02()\n{\n    MyPrint myPrint;\n    myPrint(\"hello world\");\n    myPrint(\"hello world\");\n    myPrint(\"hello world\");\n    cout \u003C\u003C \"myPrint调用次数为： \" \u003C\u003C myPrint.count \u003C\u003C endl;\n}\n\n//3、函数对象可以作为参数传递\nvoid doPrint(MyPrint &mp , string test)\n{\n    mp(test);\n}\n\nvoid test03()\n{\n    MyPrint myPrint;\n    doPrint(myPrint, \"Hello C++\");\n}\n\nint main() {\n\n    //test01();\n    //test02();\n    test03();\n\n\n    return 0;\n}\n","cpp","",[94,95,96,109,116,123,133,140,146,179,185,200,206,212,217,229,234,240,271,277,282,288,296,301,307,315,320,335,340,360,365,380,395,400,405,416,421,431,436,442,456,467,478,498,503,508,514,542,547,556,561,566,576,581,586,600,605,610,621,626,632,638,647,652,657,667],"code",{"__ignoreMap":92},[97,98,101,105],"span",{"class":99,"line":100},"line",1,[97,102,104],{"class":103},"szBVR","#include",[97,106,108],{"class":107},"sZZnC"," \u003Cstring>\n",[97,110,112],{"class":99,"line":111},2,[97,113,115],{"emptyLinePlaceholder":114},true,"\n",[97,117,119],{"class":99,"line":118},3,[97,120,122],{"class":121},"sJ8bj","//1、函数对象在使用时，可以像普通函数那样调用, 可以有参数，可以有返回值\n",[97,124,126,129],{"class":99,"line":125},4,[97,127,128],{"class":103},"class",[97,130,132],{"class":131},"sScJk"," MyAdd\n",[97,134,136],{"class":99,"line":135},5,[97,137,139],{"class":138},"sVt8B","{\n",[97,141,143],{"class":99,"line":142},6,[97,144,145],{"class":103},"public :\n",[97,147,149,152,155,158,161,164,168,171,173,176],{"class":99,"line":148},7,[97,150,151],{"class":103},"    int",[97,153,154],{"class":103}," operator",[97,156,157],{"class":131},"()",[97,159,160],{"class":138},"(",[97,162,163],{"class":103},"int",[97,165,167],{"class":166},"s4XuR"," v1",[97,169,170],{"class":138},",",[97,172,163],{"class":103},[97,174,175],{"class":166}," v2",[97,177,178],{"class":138},")\n",[97,180,182],{"class":99,"line":181},8,[97,183,184],{"class":138},"    {\n",[97,186,188,191,194,197],{"class":99,"line":187},9,[97,189,190],{"class":103},"        return",[97,192,193],{"class":138}," v1 ",[97,195,196],{"class":103},"+",[97,198,199],{"class":138}," v2;\n",[97,201,203],{"class":99,"line":202},10,[97,204,205],{"class":138},"    }\n",[97,207,209],{"class":99,"line":208},11,[97,210,211],{"class":138},"};\n",[97,213,215],{"class":99,"line":214},12,[97,216,115],{"emptyLinePlaceholder":114},[97,218,220,223,226],{"class":99,"line":219},13,[97,221,222],{"class":103},"void",[97,224,225],{"class":131}," test01",[97,227,228],{"class":138},"()\n",[97,230,232],{"class":99,"line":231},14,[97,233,139],{"class":138},[97,235,237],{"class":99,"line":236},15,[97,238,239],{"class":138},"    MyAdd myAdd;\n",[97,241,243,246,249,252,254,258,261,263,266,268],{"class":99,"line":242},16,[97,244,245],{"class":138},"    cout ",[97,247,248],{"class":103},"\u003C\u003C",[97,250,251],{"class":131}," myAdd",[97,253,160],{"class":138},[97,255,257],{"class":256},"sj4cs","10",[97,259,260],{"class":138},", ",[97,262,257],{"class":256},[97,264,265],{"class":138},") ",[97,267,248],{"class":103},[97,269,270],{"class":138}," endl;\n",[97,272,274],{"class":99,"line":273},17,[97,275,276],{"class":138},"}\n",[97,278,280],{"class":99,"line":279},18,[97,281,115],{"emptyLinePlaceholder":114},[97,283,285],{"class":99,"line":284},19,[97,286,287],{"class":121},"//2、函数对象可以有自己的状态\n",[97,289,291,293],{"class":99,"line":290},20,[97,292,128],{"class":103},[97,294,295],{"class":131}," MyPrint\n",[97,297,299],{"class":99,"line":298},21,[97,300,139],{"class":138},[97,302,304],{"class":99,"line":303},22,[97,305,306],{"class":103},"public:\n",[97,308,310,313],{"class":99,"line":309},23,[97,311,312],{"class":131},"    MyPrint",[97,314,228],{"class":138},[97,316,318],{"class":99,"line":317},24,[97,319,184],{"class":138},[97,321,323,326,329,332],{"class":99,"line":322},25,[97,324,325],{"class":138},"        count ",[97,327,328],{"class":103},"=",[97,330,331],{"class":256}," 0",[97,333,334],{"class":138},";\n",[97,336,338],{"class":99,"line":337},26,[97,339,205],{"class":138},[97,341,343,346,348,350,352,355,358],{"class":99,"line":342},27,[97,344,345],{"class":103},"    void",[97,347,154],{"class":103},[97,349,157],{"class":131},[97,351,160],{"class":138},[97,353,354],{"class":131},"string",[97,356,357],{"class":166}," test",[97,359,178],{"class":138},[97,361,363],{"class":99,"line":362},28,[97,364,184],{"class":138},[97,366,368,371,373,376,378],{"class":99,"line":367},29,[97,369,370],{"class":138},"        cout ",[97,372,248],{"class":103},[97,374,375],{"class":138}," test ",[97,377,248],{"class":103},[97,379,270],{"class":138},[97,381,383,386,389,392],{"class":99,"line":382},30,[97,384,385],{"class":138},"        count",[97,387,388],{"class":103},"++",[97,390,391],{"class":138},";",[97,393,394],{"class":121}," //统计使用次数\n",[97,396,398],{"class":99,"line":397},31,[97,399,205],{"class":138},[97,401,403],{"class":99,"line":402},32,[97,404,115],{"emptyLinePlaceholder":114},[97,406,408,410,413],{"class":99,"line":407},33,[97,409,151],{"class":103},[97,411,412],{"class":138}," count;",[97,414,415],{"class":121}," //内部自己的状态\n",[97,417,419],{"class":99,"line":418},34,[97,420,211],{"class":138},[97,422,424,426,429],{"class":99,"line":423},35,[97,425,222],{"class":103},[97,427,428],{"class":131}," test02",[97,430,228],{"class":138},[97,432,434],{"class":99,"line":433},36,[97,435,139],{"class":138},[97,437,439],{"class":99,"line":438},37,[97,440,441],{"class":138},"    MyPrint myPrint;\n",[97,443,445,448,450,453],{"class":99,"line":444},38,[97,446,447],{"class":131},"    myPrint",[97,449,160],{"class":138},[97,451,452],{"class":107},"\"hello world\"",[97,454,455],{"class":138},");\n",[97,457,459,461,463,465],{"class":99,"line":458},39,[97,460,447],{"class":131},[97,462,160],{"class":138},[97,464,452],{"class":107},[97,466,455],{"class":138},[97,468,470,472,474,476],{"class":99,"line":469},40,[97,471,447],{"class":131},[97,473,160],{"class":138},[97,475,452],{"class":107},[97,477,455],{"class":138},[97,479,481,483,485,488,491,494,496],{"class":99,"line":480},41,[97,482,245],{"class":138},[97,484,248],{"class":103},[97,486,487],{"class":107}," \"myPrint调用次数为： \"",[97,489,490],{"class":103}," \u003C\u003C",[97,492,493],{"class":138}," myPrint.count ",[97,495,248],{"class":103},[97,497,270],{"class":138},[97,499,501],{"class":99,"line":500},42,[97,502,276],{"class":138},[97,504,506],{"class":99,"line":505},43,[97,507,115],{"emptyLinePlaceholder":114},[97,509,511],{"class":99,"line":510},44,[97,512,513],{"class":121},"//3、函数对象可以作为参数传递\n",[97,515,517,519,522,524,527,530,533,536,538,540],{"class":99,"line":516},45,[97,518,222],{"class":103},[97,520,521],{"class":131}," doPrint",[97,523,160],{"class":138},[97,525,526],{"class":131},"MyPrint",[97,528,529],{"class":103}," &",[97,531,532],{"class":166},"mp",[97,534,535],{"class":138}," , ",[97,537,354],{"class":131},[97,539,357],{"class":166},[97,541,178],{"class":138},[97,543,545],{"class":99,"line":544},46,[97,546,139],{"class":138},[97,548,550,553],{"class":99,"line":549},47,[97,551,552],{"class":131},"    mp",[97,554,555],{"class":138},"(test);\n",[97,557,559],{"class":99,"line":558},48,[97,560,276],{"class":138},[97,562,564],{"class":99,"line":563},49,[97,565,115],{"emptyLinePlaceholder":114},[97,567,569,571,574],{"class":99,"line":568},50,[97,570,222],{"class":103},[97,572,573],{"class":131}," test03",[97,575,228],{"class":138},[97,577,579],{"class":99,"line":578},51,[97,580,139],{"class":138},[97,582,584],{"class":99,"line":583},52,[97,585,441],{"class":138},[97,587,589,592,595,598],{"class":99,"line":588},53,[97,590,591],{"class":131},"    doPrint",[97,593,594],{"class":138},"(myPrint, ",[97,596,597],{"class":107},"\"Hello C++\"",[97,599,455],{"class":138},[97,601,603],{"class":99,"line":602},54,[97,604,276],{"class":138},[97,606,608],{"class":99,"line":607},55,[97,609,115],{"emptyLinePlaceholder":114},[97,611,613,615,618],{"class":99,"line":612},56,[97,614,163],{"class":103},[97,616,617],{"class":131}," main",[97,619,620],{"class":138},"() {\n",[97,622,624],{"class":99,"line":623},57,[97,625,115],{"emptyLinePlaceholder":114},[97,627,629],{"class":99,"line":628},58,[97,630,631],{"class":121},"    //test01();\n",[97,633,635],{"class":99,"line":634},59,[97,636,637],{"class":121},"    //test02();\n",[97,639,641,644],{"class":99,"line":640},60,[97,642,643],{"class":131},"    test03",[97,645,646],{"class":138},"();\n",[97,648,650],{"class":99,"line":649},61,[97,651,115],{"emptyLinePlaceholder":114},[97,653,655],{"class":99,"line":654},62,[97,656,115],{"emptyLinePlaceholder":114},[97,658,660,663,665],{"class":99,"line":659},63,[97,661,662],{"class":103},"    return",[97,664,331],{"class":256},[97,666,334],{"class":138},[97,668,670],{"class":99,"line":669},64,[97,671,276],{"class":138},[23,673,674,677],{},[26,675,676],{},"运行/观察结果："," 运行后会打印示例中的变量值或地址；地址值与运行环境有关，以同类对象的相对位置和指针变化为观察重点。",[23,679,680],{},"总结：",[30,682,683],{},[33,684,685],{},"仿函数写法非常灵活，可以作为参数进行传递。",[15,687,688],{"id":688},"谓词",[19,690,691],{"id":691},"谓词概念",[23,693,694],{},[26,695,28],{},[30,697,698,703,706],{},[33,699,700,701],{},"返回bool类型的仿函数称为",[26,702,688],{},[33,704,705],{},"如果operator()接受一个参数，那么叫做一元谓词",[33,707,708],{},"如果operator()接受两个参数，那么叫做二元谓词",[19,710,711],{"id":711},"一元谓词",[23,713,714],{},[26,715,716],{},"示例：",[87,718,720],{"className":89,"code":719,"language":91,"meta":92,"style":92},"#include \u003Cvector>\n#include \u003Calgorithm>\n\n//1.一元谓词\nstruct GreaterFive{\n    bool operator()(int val) {\n        return val > 5;\n    }\n};\n\nvoid test01() {\n\n    vector\u003Cint> v;\n    for (int i = 0; i \u003C 10; i++)\n    {\n        v.push_back(i);\n    }\n\n    vector\u003Cint>::iterator it = find_if(v.begin(), v.end(), GreaterFive());\n    if (it == v.end()) {\n        cout \u003C\u003C \"没找到!\" \u003C\u003C endl;\n    }\n    else {\n        cout \u003C\u003C \"找到:\" \u003C\u003C *it \u003C\u003C endl;\n    }\n\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[94,721,722,729,736,740,745,755,774,789,793,797,801,809,813,824,857,861,872,876,880,917,936,949,953,961,982,986,990,994,998,1006,1010,1017,1021,1025,1033],{"__ignoreMap":92},[97,723,724,726],{"class":99,"line":100},[97,725,104],{"class":103},[97,727,728],{"class":107}," \u003Cvector>\n",[97,730,731,733],{"class":99,"line":111},[97,732,104],{"class":103},[97,734,735],{"class":107}," \u003Calgorithm>\n",[97,737,738],{"class":99,"line":118},[97,739,115],{"emptyLinePlaceholder":114},[97,741,742],{"class":99,"line":125},[97,743,744],{"class":121},"//1.一元谓词\n",[97,746,747,750,753],{"class":99,"line":135},[97,748,749],{"class":103},"struct",[97,751,752],{"class":131}," GreaterFive",[97,754,139],{"class":138},[97,756,757,760,762,764,766,768,771],{"class":99,"line":142},[97,758,759],{"class":103},"    bool",[97,761,154],{"class":103},[97,763,157],{"class":131},[97,765,160],{"class":138},[97,767,163],{"class":103},[97,769,770],{"class":166}," val",[97,772,773],{"class":138},") {\n",[97,775,776,778,781,784,787],{"class":99,"line":148},[97,777,190],{"class":103},[97,779,780],{"class":138}," val ",[97,782,783],{"class":103},">",[97,785,786],{"class":256}," 5",[97,788,334],{"class":138},[97,790,791],{"class":99,"line":181},[97,792,205],{"class":138},[97,794,795],{"class":99,"line":187},[97,796,211],{"class":138},[97,798,799],{"class":99,"line":202},[97,800,115],{"emptyLinePlaceholder":114},[97,802,803,805,807],{"class":99,"line":208},[97,804,222],{"class":103},[97,806,225],{"class":131},[97,808,620],{"class":138},[97,810,811],{"class":99,"line":214},[97,812,115],{"emptyLinePlaceholder":114},[97,814,815,818,821],{"class":99,"line":219},[97,816,817],{"class":138},"    vector",[97,819,820],{"class":103},"\u003Cint>",[97,822,823],{"class":138}," v;\n",[97,825,826,829,832,834,837,839,841,844,847,850,853,855],{"class":99,"line":231},[97,827,828],{"class":103},"    for",[97,830,831],{"class":138}," (",[97,833,163],{"class":103},[97,835,836],{"class":138}," i ",[97,838,328],{"class":103},[97,840,331],{"class":256},[97,842,843],{"class":138},"; i ",[97,845,846],{"class":103},"\u003C",[97,848,849],{"class":256}," 10",[97,851,852],{"class":138},"; i",[97,854,388],{"class":103},[97,856,178],{"class":138},[97,858,859],{"class":99,"line":236},[97,860,184],{"class":138},[97,862,863,866,869],{"class":99,"line":242},[97,864,865],{"class":138},"        v.",[97,867,868],{"class":131},"push_back",[97,870,871],{"class":138},"(i);\n",[97,873,874],{"class":99,"line":273},[97,875,205],{"class":138},[97,877,878],{"class":99,"line":279},[97,879,115],{"emptyLinePlaceholder":114},[97,881,882,884,886,888,891,893,896,899,902,905,908,911,914],{"class":99,"line":284},[97,883,817],{"class":131},[97,885,846],{"class":138},[97,887,163],{"class":103},[97,889,890],{"class":138},">::iterator it ",[97,892,328],{"class":103},[97,894,895],{"class":131}," find_if",[97,897,898],{"class":138},"(v.",[97,900,901],{"class":131},"begin",[97,903,904],{"class":138},"(), v.",[97,906,907],{"class":131},"end",[97,909,910],{"class":138},"(), ",[97,912,913],{"class":131},"GreaterFive",[97,915,916],{"class":138},"());\n",[97,918,919,922,925,928,931,933],{"class":99,"line":290},[97,920,921],{"class":103},"    if",[97,923,924],{"class":138}," (it ",[97,926,927],{"class":103},"==",[97,929,930],{"class":138}," v.",[97,932,907],{"class":131},[97,934,935],{"class":138},"()) {\n",[97,937,938,940,942,945,947],{"class":99,"line":298},[97,939,370],{"class":138},[97,941,248],{"class":103},[97,943,944],{"class":107}," \"没找到!\"",[97,946,490],{"class":103},[97,948,270],{"class":138},[97,950,951],{"class":99,"line":303},[97,952,205],{"class":138},[97,954,955,958],{"class":99,"line":309},[97,956,957],{"class":103},"    else",[97,959,960],{"class":138}," {\n",[97,962,963,965,967,970,972,975,978,980],{"class":99,"line":317},[97,964,370],{"class":138},[97,966,248],{"class":103},[97,968,969],{"class":107}," \"找到:\"",[97,971,490],{"class":103},[97,973,974],{"class":103}," *",[97,976,977],{"class":138},"it ",[97,979,248],{"class":103},[97,981,270],{"class":138},[97,983,984],{"class":99,"line":322},[97,985,205],{"class":138},[97,987,988],{"class":99,"line":337},[97,989,115],{"emptyLinePlaceholder":114},[97,991,992],{"class":99,"line":342},[97,993,276],{"class":138},[97,995,996],{"class":99,"line":362},[97,997,115],{"emptyLinePlaceholder":114},[97,999,1000,1002,1004],{"class":99,"line":367},[97,1001,163],{"class":103},[97,1003,617],{"class":131},[97,1005,620],{"class":138},[97,1007,1008],{"class":99,"line":382},[97,1009,115],{"emptyLinePlaceholder":114},[97,1011,1012,1015],{"class":99,"line":397},[97,1013,1014],{"class":131},"    test01",[97,1016,646],{"class":138},[97,1018,1019],{"class":99,"line":402},[97,1020,115],{"emptyLinePlaceholder":114},[97,1022,1023],{"class":99,"line":407},[97,1024,115],{"emptyLinePlaceholder":114},[97,1026,1027,1029,1031],{"class":99,"line":418},[97,1028,662],{"class":103},[97,1030,331],{"class":256},[97,1032,334],{"class":138},[97,1034,1035],{"class":99,"line":423},[97,1036,276],{"class":138},[23,1038,1039,1041],{},[26,1040,676],{}," 运行后会按输出语句打印对应内容，变量值可结合初始化、赋值和函数调用顺序推导。",[23,1043,1044],{},"总结：参数只有一个的谓词，称为一元谓词",[19,1046,1047],{"id":1047},"二元谓词",[23,1049,1050],{},[26,1051,716],{},[87,1053,1055],{"className":89,"code":1054,"language":91,"meta":92,"style":92},"#include \u003Cvector>\n#include \u003Calgorithm>\n//二元谓词\nclass MyCompare\n{\npublic:\n    bool operator()(int num1, int num2)\n    {\n        return num1 > num2;\n    }\n};\n\nvoid test01()\n{\n    vector\u003Cint> v;\n    v.push_back(10);\n    v.push_back(40);\n    v.push_back(20);\n    v.push_back(30);\n    v.push_back(50);\n\n    //默认从小到大\n    sort(v.begin(), v.end());\n    for (vector\u003Cint>::iterator it = v.begin(); it != v.end(); it++)\n    {\n        cout \u003C\u003C *it \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n    cout \u003C\u003C \"----------------------------\" \u003C\u003C endl;\n\n    //使用函数对象改变算法策略，排序从大到小\n    sort(v.begin(), v.end(), MyCompare());\n    for (vector\u003Cint>::iterator it = v.begin(); it != v.end(); it++)\n    {\n        cout \u003C\u003C *it \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[94,1056,1057,1063,1069,1074,1081,1085,1089,1113,1117,1129,1133,1137,1141,1149,1153,1161,1174,1187,1200,1213,1226,1230,1235,1250,1288,1292,1309,1313,1321,1334,1338,1343,1362,1396,1400,1416,1420,1428,1432,1436,1444,1448,1454,1458,1462,1470],{"__ignoreMap":92},[97,1058,1059,1061],{"class":99,"line":100},[97,1060,104],{"class":103},[97,1062,728],{"class":107},[97,1064,1065,1067],{"class":99,"line":111},[97,1066,104],{"class":103},[97,1068,735],{"class":107},[97,1070,1071],{"class":99,"line":118},[97,1072,1073],{"class":121},"//二元谓词\n",[97,1075,1076,1078],{"class":99,"line":125},[97,1077,128],{"class":103},[97,1079,1080],{"class":131}," MyCompare\n",[97,1082,1083],{"class":99,"line":135},[97,1084,139],{"class":138},[97,1086,1087],{"class":99,"line":142},[97,1088,306],{"class":103},[97,1090,1091,1093,1095,1097,1099,1101,1104,1106,1108,1111],{"class":99,"line":148},[97,1092,759],{"class":103},[97,1094,154],{"class":103},[97,1096,157],{"class":131},[97,1098,160],{"class":138},[97,1100,163],{"class":103},[97,1102,1103],{"class":166}," num1",[97,1105,260],{"class":138},[97,1107,163],{"class":103},[97,1109,1110],{"class":166}," num2",[97,1112,178],{"class":138},[97,1114,1115],{"class":99,"line":181},[97,1116,184],{"class":138},[97,1118,1119,1121,1124,1126],{"class":99,"line":187},[97,1120,190],{"class":103},[97,1122,1123],{"class":138}," num1 ",[97,1125,783],{"class":103},[97,1127,1128],{"class":138}," num2;\n",[97,1130,1131],{"class":99,"line":202},[97,1132,205],{"class":138},[97,1134,1135],{"class":99,"line":208},[97,1136,211],{"class":138},[97,1138,1139],{"class":99,"line":214},[97,1140,115],{"emptyLinePlaceholder":114},[97,1142,1143,1145,1147],{"class":99,"line":219},[97,1144,222],{"class":103},[97,1146,225],{"class":131},[97,1148,228],{"class":138},[97,1150,1151],{"class":99,"line":231},[97,1152,139],{"class":138},[97,1154,1155,1157,1159],{"class":99,"line":236},[97,1156,817],{"class":138},[97,1158,820],{"class":103},[97,1160,823],{"class":138},[97,1162,1163,1166,1168,1170,1172],{"class":99,"line":242},[97,1164,1165],{"class":138},"    v.",[97,1167,868],{"class":131},[97,1169,160],{"class":138},[97,1171,257],{"class":256},[97,1173,455],{"class":138},[97,1175,1176,1178,1180,1182,1185],{"class":99,"line":273},[97,1177,1165],{"class":138},[97,1179,868],{"class":131},[97,1181,160],{"class":138},[97,1183,1184],{"class":256},"40",[97,1186,455],{"class":138},[97,1188,1189,1191,1193,1195,1198],{"class":99,"line":279},[97,1190,1165],{"class":138},[97,1192,868],{"class":131},[97,1194,160],{"class":138},[97,1196,1197],{"class":256},"20",[97,1199,455],{"class":138},[97,1201,1202,1204,1206,1208,1211],{"class":99,"line":284},[97,1203,1165],{"class":138},[97,1205,868],{"class":131},[97,1207,160],{"class":138},[97,1209,1210],{"class":256},"30",[97,1212,455],{"class":138},[97,1214,1215,1217,1219,1221,1224],{"class":99,"line":290},[97,1216,1165],{"class":138},[97,1218,868],{"class":131},[97,1220,160],{"class":138},[97,1222,1223],{"class":256},"50",[97,1225,455],{"class":138},[97,1227,1228],{"class":99,"line":298},[97,1229,115],{"emptyLinePlaceholder":114},[97,1231,1232],{"class":99,"line":303},[97,1233,1234],{"class":121},"    //默认从小到大\n",[97,1236,1237,1240,1242,1244,1246,1248],{"class":99,"line":309},[97,1238,1239],{"class":131},"    sort",[97,1241,898],{"class":138},[97,1243,901],{"class":131},[97,1245,904],{"class":138},[97,1247,907],{"class":131},[97,1249,916],{"class":138},[97,1251,1252,1254,1256,1259,1261,1263,1265,1267,1269,1271,1274,1277,1279,1281,1284,1286],{"class":99,"line":317},[97,1253,828],{"class":103},[97,1255,831],{"class":138},[97,1257,1258],{"class":131},"vector",[97,1260,846],{"class":138},[97,1262,163],{"class":103},[97,1264,890],{"class":138},[97,1266,328],{"class":103},[97,1268,930],{"class":138},[97,1270,901],{"class":131},[97,1272,1273],{"class":138},"(); it ",[97,1275,1276],{"class":103},"!=",[97,1278,930],{"class":138},[97,1280,907],{"class":131},[97,1282,1283],{"class":138},"(); it",[97,1285,388],{"class":103},[97,1287,178],{"class":138},[97,1289,1290],{"class":99,"line":322},[97,1291,184],{"class":138},[97,1293,1294,1296,1298,1300,1302,1304,1307],{"class":99,"line":337},[97,1295,370],{"class":138},[97,1297,248],{"class":103},[97,1299,974],{"class":103},[97,1301,977],{"class":138},[97,1303,248],{"class":103},[97,1305,1306],{"class":107}," \" \"",[97,1308,334],{"class":138},[97,1310,1311],{"class":99,"line":342},[97,1312,205],{"class":138},[97,1314,1315,1317,1319],{"class":99,"line":362},[97,1316,245],{"class":138},[97,1318,248],{"class":103},[97,1320,270],{"class":138},[97,1322,1323,1325,1327,1330,1332],{"class":99,"line":367},[97,1324,245],{"class":138},[97,1326,248],{"class":103},[97,1328,1329],{"class":107}," \"----------------------------\"",[97,1331,490],{"class":103},[97,1333,270],{"class":138},[97,1335,1336],{"class":99,"line":382},[97,1337,115],{"emptyLinePlaceholder":114},[97,1339,1340],{"class":99,"line":397},[97,1341,1342],{"class":121},"    //使用函数对象改变算法策略，排序从大到小\n",[97,1344,1345,1347,1349,1351,1353,1355,1357,1360],{"class":99,"line":402},[97,1346,1239],{"class":131},[97,1348,898],{"class":138},[97,1350,901],{"class":131},[97,1352,904],{"class":138},[97,1354,907],{"class":131},[97,1356,910],{"class":138},[97,1358,1359],{"class":131},"MyCompare",[97,1361,916],{"class":138},[97,1363,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394],{"class":99,"line":407},[97,1365,828],{"class":103},[97,1367,831],{"class":138},[97,1369,1258],{"class":131},[97,1371,846],{"class":138},[97,1373,163],{"class":103},[97,1375,890],{"class":138},[97,1377,328],{"class":103},[97,1379,930],{"class":138},[97,1381,901],{"class":131},[97,1383,1273],{"class":138},[97,1385,1276],{"class":103},[97,1387,930],{"class":138},[97,1389,907],{"class":131},[97,1391,1283],{"class":138},[97,1393,388],{"class":103},[97,1395,178],{"class":138},[97,1397,1398],{"class":99,"line":418},[97,1399,184],{"class":138},[97,1401,1402,1404,1406,1408,1410,1412,1414],{"class":99,"line":423},[97,1403,370],{"class":138},[97,1405,248],{"class":103},[97,1407,974],{"class":103},[97,1409,977],{"class":138},[97,1411,248],{"class":103},[97,1413,1306],{"class":107},[97,1415,334],{"class":138},[97,1417,1418],{"class":99,"line":433},[97,1419,205],{"class":138},[97,1421,1422,1424,1426],{"class":99,"line":438},[97,1423,245],{"class":138},[97,1425,248],{"class":103},[97,1427,270],{"class":138},[97,1429,1430],{"class":99,"line":444},[97,1431,276],{"class":138},[97,1433,1434],{"class":99,"line":458},[97,1435,115],{"emptyLinePlaceholder":114},[97,1437,1438,1440,1442],{"class":99,"line":469},[97,1439,163],{"class":103},[97,1441,617],{"class":131},[97,1443,620],{"class":138},[97,1445,1446],{"class":99,"line":480},[97,1447,115],{"emptyLinePlaceholder":114},[97,1449,1450,1452],{"class":99,"line":500},[97,1451,1014],{"class":131},[97,1453,646],{"class":138},[97,1455,1456],{"class":99,"line":505},[97,1457,115],{"emptyLinePlaceholder":114},[97,1459,1460],{"class":99,"line":510},[97,1461,115],{"emptyLinePlaceholder":114},[97,1463,1464,1466,1468],{"class":99,"line":516},[97,1465,662],{"class":103},[97,1467,331],{"class":256},[97,1469,334],{"class":138},[97,1471,1472],{"class":99,"line":544},[97,1473,276],{"class":138},[23,1475,1476,1041],{},[26,1477,676],{},[23,1479,1480],{},"总结：参数只有两个的谓词，称为二元谓词",[15,1482,1483],{"id":1483},"内建函数对象",[19,1485,1486],{"id":1486},"内建函数对象意义",[23,1488,1489],{},[26,1490,28],{},[30,1492,1493],{},[33,1494,1495],{},"STL内建了一些函数对象",[23,1497,1498],{},[26,1499,1500],{},"分类:",[30,1502,1503,1506,1509],{},[33,1504,1505],{},"算术仿函数",[33,1507,1508],{},"关系仿函数",[33,1510,1511],{},"逻辑仿函数",[23,1513,1514],{},[26,1515,1516],{},"用法：",[30,1518,1519,1522],{},[33,1520,1521],{},"这些仿函数所产生的对象，用法和一般函数完全相同",[33,1523,1524,1525],{},"使用内建函数对象，需要引入头文件 ",[94,1526,1527],{},"#include\u003Cfunctional>",[19,1529,1505],{"id":1505},[23,1531,1532],{},[26,1533,1534],{},"功能描述：",[30,1536,1537,1540],{},[33,1538,1539],{},"实现四则运算",[33,1541,1542],{},"其中negate是一元运算，其他都是二元运算",[23,1544,1545],{},[26,1546,1547],{},"仿函数原型：",[30,1549,1550,1556,1562,1568,1574,1580],{},[33,1551,1552,1555],{},[94,1553,1554],{},"template\u003Cclass T> T plus\u003CT>","                //加法仿函数",[33,1557,1558,1561],{},[94,1559,1560],{},"template\u003Cclass T> T minus\u003CT>","              //减法仿函数",[33,1563,1564,1567],{},[94,1565,1566],{},"template\u003Cclass T> T multiplies\u003CT>","    //乘法仿函数",[33,1569,1570,1573],{},[94,1571,1572],{},"template\u003Cclass T> T divides\u003CT>","         //除法仿函数",[33,1575,1576,1579],{},[94,1577,1578],{},"template\u003Cclass T> T modulus\u003CT>","         //取模仿函数",[33,1581,1582,1585],{},[94,1583,1584],{},"template\u003Cclass T> T negate\u003CT>","           //取反仿函数",[23,1587,1588],{},[26,1589,716],{},[87,1591,1593],{"className":89,"code":1592,"language":91,"meta":92,"style":92},"#include \u003Cfunctional>\n//negate\nvoid test01()\n{\n    negate\u003Cint> n;\n    cout \u003C\u003C n(50) \u003C\u003C endl;\n}\n\n//plus\nvoid test02()\n{\n    plus\u003Cint> p;\n    cout \u003C\u003C p(10, 20) \u003C\u003C endl;\n}\n\nint main() {\n\n    test01();\n    test02();\n\n\n    return 0;\n}\n",[94,1594,1595,1602,1607,1615,1619,1629,1648,1652,1656,1661,1669,1673,1683,1706,1710,1714,1722,1726,1732,1739,1743,1747,1755],{"__ignoreMap":92},[97,1596,1597,1599],{"class":99,"line":100},[97,1598,104],{"class":103},[97,1600,1601],{"class":107}," \u003Cfunctional>\n",[97,1603,1604],{"class":99,"line":111},[97,1605,1606],{"class":121},"//negate\n",[97,1608,1609,1611,1613],{"class":99,"line":118},[97,1610,222],{"class":103},[97,1612,225],{"class":131},[97,1614,228],{"class":138},[97,1616,1617],{"class":99,"line":125},[97,1618,139],{"class":138},[97,1620,1621,1624,1626],{"class":99,"line":135},[97,1622,1623],{"class":138},"    negate",[97,1625,820],{"class":103},[97,1627,1628],{"class":138}," n;\n",[97,1630,1631,1633,1635,1638,1640,1642,1644,1646],{"class":99,"line":142},[97,1632,245],{"class":138},[97,1634,248],{"class":103},[97,1636,1637],{"class":131}," n",[97,1639,160],{"class":138},[97,1641,1223],{"class":256},[97,1643,265],{"class":138},[97,1645,248],{"class":103},[97,1647,270],{"class":138},[97,1649,1650],{"class":99,"line":148},[97,1651,276],{"class":138},[97,1653,1654],{"class":99,"line":181},[97,1655,115],{"emptyLinePlaceholder":114},[97,1657,1658],{"class":99,"line":187},[97,1659,1660],{"class":121},"//plus\n",[97,1662,1663,1665,1667],{"class":99,"line":202},[97,1664,222],{"class":103},[97,1666,428],{"class":131},[97,1668,228],{"class":138},[97,1670,1671],{"class":99,"line":208},[97,1672,139],{"class":138},[97,1674,1675,1678,1680],{"class":99,"line":214},[97,1676,1677],{"class":138},"    plus",[97,1679,820],{"class":103},[97,1681,1682],{"class":138}," p;\n",[97,1684,1685,1687,1689,1692,1694,1696,1698,1700,1702,1704],{"class":99,"line":219},[97,1686,245],{"class":138},[97,1688,248],{"class":103},[97,1690,1691],{"class":131}," p",[97,1693,160],{"class":138},[97,1695,257],{"class":256},[97,1697,260],{"class":138},[97,1699,1197],{"class":256},[97,1701,265],{"class":138},[97,1703,248],{"class":103},[97,1705,270],{"class":138},[97,1707,1708],{"class":99,"line":231},[97,1709,276],{"class":138},[97,1711,1712],{"class":99,"line":236},[97,1713,115],{"emptyLinePlaceholder":114},[97,1715,1716,1718,1720],{"class":99,"line":242},[97,1717,163],{"class":103},[97,1719,617],{"class":131},[97,1721,620],{"class":138},[97,1723,1724],{"class":99,"line":273},[97,1725,115],{"emptyLinePlaceholder":114},[97,1727,1728,1730],{"class":99,"line":279},[97,1729,1014],{"class":131},[97,1731,646],{"class":138},[97,1733,1734,1737],{"class":99,"line":284},[97,1735,1736],{"class":131},"    test02",[97,1738,646],{"class":138},[97,1740,1741],{"class":99,"line":290},[97,1742,115],{"emptyLinePlaceholder":114},[97,1744,1745],{"class":99,"line":298},[97,1746,115],{"emptyLinePlaceholder":114},[97,1748,1749,1751,1753],{"class":99,"line":303},[97,1750,662],{"class":103},[97,1752,331],{"class":256},[97,1754,334],{"class":138},[97,1756,1757],{"class":99,"line":309},[97,1758,276],{"class":138},[23,1760,1761,1041],{},[26,1762,676],{},[23,1764,1765,1766],{},"总结：使用内建函数对象时，需要引入头文件 ",[94,1767,1768],{},"#include \u003Cfunctional>",[19,1770,1508],{"id":1508},[23,1772,1773],{},[26,1774,1534],{},[30,1776,1777],{},[33,1778,1779],{},"实现关系对比",[23,1781,1782],{},[26,1783,1547],{},[30,1785,1786,1792,1798,1804,1810,1816],{},[33,1787,1788,1791],{},[94,1789,1790],{},"template\u003Cclass T> bool equal_to\u003CT>","                    //等于",[33,1793,1794,1797],{},[94,1795,1796],{},"template\u003Cclass T> bool not_equal_to\u003CT>","            //不等于",[33,1799,1800,1803],{},[94,1801,1802],{},"template\u003Cclass T> bool greater\u003CT>","                      //大于",[33,1805,1806,1809],{},[94,1807,1808],{},"template\u003Cclass T> bool greater_equal\u003CT>","          //大于等于",[33,1811,1812,1815],{},[94,1813,1814],{},"template\u003Cclass T> bool less\u003CT>","                           //小于",[33,1817,1818,1821],{},[94,1819,1820],{},"template\u003Cclass T> bool less_equal\u003CT>","               //小于等于",[23,1823,1824],{},[26,1825,716],{},[87,1827,1829],{"className":89,"code":1828,"language":91,"meta":92,"style":92},"#include \u003Cfunctional>\n#include \u003Cvector>\n#include \u003Calgorithm>\n\nclass MyCompare\n{\npublic:\n    bool operator()(int v1,int v2)\n    {\n        return v1 > v2;\n    }\n};\nvoid test01()\n{\n    vector\u003Cint> v;\n\n    v.push_back(10);\n    v.push_back(30);\n    v.push_back(50);\n    v.push_back(40);\n    v.push_back(20);\n\n    for (vector\u003Cint>::iterator it = v.begin(); it != v.end(); it++) {\n        cout \u003C\u003C *it \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n\n    //自己实现仿函数\n    //sort(v.begin(), v.end(), MyCompare());\n    //STL内建仿函数  大于仿函数\n    sort(v.begin(), v.end(), greater\u003Cint>());\n\n    for (vector\u003Cint>::iterator it = v.begin(); it != v.end(); it++) {\n        cout \u003C\u003C *it \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[94,1830,1831,1837,1843,1849,1853,1859,1863,1867,1889,1893,1903,1907,1911,1919,1923,1931,1935,1947,1959,1971,1983,1995,1999,2033,2049,2053,2061,2065,2070,2075,2080,2104,2108,2142,2158,2162,2170,2174,2178,2186,2190,2196,2200,2204,2212],{"__ignoreMap":92},[97,1832,1833,1835],{"class":99,"line":100},[97,1834,104],{"class":103},[97,1836,1601],{"class":107},[97,1838,1839,1841],{"class":99,"line":111},[97,1840,104],{"class":103},[97,1842,728],{"class":107},[97,1844,1845,1847],{"class":99,"line":118},[97,1846,104],{"class":103},[97,1848,735],{"class":107},[97,1850,1851],{"class":99,"line":125},[97,1852,115],{"emptyLinePlaceholder":114},[97,1854,1855,1857],{"class":99,"line":135},[97,1856,128],{"class":103},[97,1858,1080],{"class":131},[97,1860,1861],{"class":99,"line":142},[97,1862,139],{"class":138},[97,1864,1865],{"class":99,"line":148},[97,1866,306],{"class":103},[97,1868,1869,1871,1873,1875,1877,1879,1881,1883,1885,1887],{"class":99,"line":181},[97,1870,759],{"class":103},[97,1872,154],{"class":103},[97,1874,157],{"class":131},[97,1876,160],{"class":138},[97,1878,163],{"class":103},[97,1880,167],{"class":166},[97,1882,170],{"class":138},[97,1884,163],{"class":103},[97,1886,175],{"class":166},[97,1888,178],{"class":138},[97,1890,1891],{"class":99,"line":187},[97,1892,184],{"class":138},[97,1894,1895,1897,1899,1901],{"class":99,"line":202},[97,1896,190],{"class":103},[97,1898,193],{"class":138},[97,1900,783],{"class":103},[97,1902,199],{"class":138},[97,1904,1905],{"class":99,"line":208},[97,1906,205],{"class":138},[97,1908,1909],{"class":99,"line":214},[97,1910,211],{"class":138},[97,1912,1913,1915,1917],{"class":99,"line":219},[97,1914,222],{"class":103},[97,1916,225],{"class":131},[97,1918,228],{"class":138},[97,1920,1921],{"class":99,"line":231},[97,1922,139],{"class":138},[97,1924,1925,1927,1929],{"class":99,"line":236},[97,1926,817],{"class":138},[97,1928,820],{"class":103},[97,1930,823],{"class":138},[97,1932,1933],{"class":99,"line":242},[97,1934,115],{"emptyLinePlaceholder":114},[97,1936,1937,1939,1941,1943,1945],{"class":99,"line":273},[97,1938,1165],{"class":138},[97,1940,868],{"class":131},[97,1942,160],{"class":138},[97,1944,257],{"class":256},[97,1946,455],{"class":138},[97,1948,1949,1951,1953,1955,1957],{"class":99,"line":279},[97,1950,1165],{"class":138},[97,1952,868],{"class":131},[97,1954,160],{"class":138},[97,1956,1210],{"class":256},[97,1958,455],{"class":138},[97,1960,1961,1963,1965,1967,1969],{"class":99,"line":284},[97,1962,1165],{"class":138},[97,1964,868],{"class":131},[97,1966,160],{"class":138},[97,1968,1223],{"class":256},[97,1970,455],{"class":138},[97,1972,1973,1975,1977,1979,1981],{"class":99,"line":290},[97,1974,1165],{"class":138},[97,1976,868],{"class":131},[97,1978,160],{"class":138},[97,1980,1184],{"class":256},[97,1982,455],{"class":138},[97,1984,1985,1987,1989,1991,1993],{"class":99,"line":298},[97,1986,1165],{"class":138},[97,1988,868],{"class":131},[97,1990,160],{"class":138},[97,1992,1197],{"class":256},[97,1994,455],{"class":138},[97,1996,1997],{"class":99,"line":303},[97,1998,115],{"emptyLinePlaceholder":114},[97,2000,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031],{"class":99,"line":309},[97,2002,828],{"class":103},[97,2004,831],{"class":138},[97,2006,1258],{"class":131},[97,2008,846],{"class":138},[97,2010,163],{"class":103},[97,2012,890],{"class":138},[97,2014,328],{"class":103},[97,2016,930],{"class":138},[97,2018,901],{"class":131},[97,2020,1273],{"class":138},[97,2022,1276],{"class":103},[97,2024,930],{"class":138},[97,2026,907],{"class":131},[97,2028,1283],{"class":138},[97,2030,388],{"class":103},[97,2032,773],{"class":138},[97,2034,2035,2037,2039,2041,2043,2045,2047],{"class":99,"line":317},[97,2036,370],{"class":138},[97,2038,248],{"class":103},[97,2040,974],{"class":103},[97,2042,977],{"class":138},[97,2044,248],{"class":103},[97,2046,1306],{"class":107},[97,2048,334],{"class":138},[97,2050,2051],{"class":99,"line":322},[97,2052,205],{"class":138},[97,2054,2055,2057,2059],{"class":99,"line":337},[97,2056,245],{"class":138},[97,2058,248],{"class":103},[97,2060,270],{"class":138},[97,2062,2063],{"class":99,"line":342},[97,2064,115],{"emptyLinePlaceholder":114},[97,2066,2067],{"class":99,"line":362},[97,2068,2069],{"class":121},"    //自己实现仿函数\n",[97,2071,2072],{"class":99,"line":367},[97,2073,2074],{"class":121},"    //sort(v.begin(), v.end(), MyCompare());\n",[97,2076,2077],{"class":99,"line":382},[97,2078,2079],{"class":121},"    //STL内建仿函数  大于仿函数\n",[97,2081,2082,2084,2086,2088,2090,2092,2094,2097,2099,2101],{"class":99,"line":397},[97,2083,1239],{"class":131},[97,2085,898],{"class":138},[97,2087,901],{"class":131},[97,2089,904],{"class":138},[97,2091,907],{"class":131},[97,2093,910],{"class":138},[97,2095,2096],{"class":131},"greater",[97,2098,846],{"class":138},[97,2100,163],{"class":103},[97,2102,2103],{"class":138},">());\n",[97,2105,2106],{"class":99,"line":402},[97,2107,115],{"emptyLinePlaceholder":114},[97,2109,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140],{"class":99,"line":407},[97,2111,828],{"class":103},[97,2113,831],{"class":138},[97,2115,1258],{"class":131},[97,2117,846],{"class":138},[97,2119,163],{"class":103},[97,2121,890],{"class":138},[97,2123,328],{"class":103},[97,2125,930],{"class":138},[97,2127,901],{"class":131},[97,2129,1273],{"class":138},[97,2131,1276],{"class":103},[97,2133,930],{"class":138},[97,2135,907],{"class":131},[97,2137,1283],{"class":138},[97,2139,388],{"class":103},[97,2141,773],{"class":138},[97,2143,2144,2146,2148,2150,2152,2154,2156],{"class":99,"line":418},[97,2145,370],{"class":138},[97,2147,248],{"class":103},[97,2149,974],{"class":103},[97,2151,977],{"class":138},[97,2153,248],{"class":103},[97,2155,1306],{"class":107},[97,2157,334],{"class":138},[97,2159,2160],{"class":99,"line":423},[97,2161,205],{"class":138},[97,2163,2164,2166,2168],{"class":99,"line":433},[97,2165,245],{"class":138},[97,2167,248],{"class":103},[97,2169,270],{"class":138},[97,2171,2172],{"class":99,"line":438},[97,2173,276],{"class":138},[97,2175,2176],{"class":99,"line":444},[97,2177,115],{"emptyLinePlaceholder":114},[97,2179,2180,2182,2184],{"class":99,"line":458},[97,2181,163],{"class":103},[97,2183,617],{"class":131},[97,2185,620],{"class":138},[97,2187,2188],{"class":99,"line":469},[97,2189,115],{"emptyLinePlaceholder":114},[97,2191,2192,2194],{"class":99,"line":480},[97,2193,1014],{"class":131},[97,2195,646],{"class":138},[97,2197,2198],{"class":99,"line":500},[97,2199,115],{"emptyLinePlaceholder":114},[97,2201,2202],{"class":99,"line":505},[97,2203,115],{"emptyLinePlaceholder":114},[97,2205,2206,2208,2210],{"class":99,"line":510},[97,2207,662],{"class":103},[97,2209,331],{"class":256},[97,2211,334],{"class":138},[97,2213,2214],{"class":99,"line":516},[97,2215,276],{"class":138},[23,2217,2218,1041],{},[26,2219,676],{},[23,2221,2222],{},"总结：关系仿函数中最常用的就是greater\u003C>大于",[19,2224,1511],{"id":1511},[23,2226,2227],{},[26,2228,1534],{},[30,2230,2231],{},[33,2232,2233],{},"实现逻辑运算",[23,2235,2236],{},[26,2237,2238],{},"函数原型：",[30,2240,2241,2247,2253],{},[33,2242,2243,2246],{},[94,2244,2245],{},"template\u003Cclass T> bool logical_and\u003CT>","              //逻辑与",[33,2248,2249,2252],{},[94,2250,2251],{},"template\u003Cclass T> bool logical_or\u003CT>","                //逻辑或",[33,2254,2255,2258],{},[94,2256,2257],{},"template\u003Cclass T> bool logical_not\u003CT>","              //逻辑非",[23,2260,2261],{},[26,2262,716],{},[87,2264,2266],{"className":89,"code":2265,"language":91,"meta":92,"style":92},"#include \u003Cvector>\n#include \u003Cfunctional>\n#include \u003Calgorithm>\nvoid test01()\n{\n    vector\u003Cbool> v;\n    v.push_back(true);\n    v.push_back(false);\n    v.push_back(true);\n    v.push_back(false);\n\n    for (vector\u003Cbool>::iterator it = v.begin();it!= v.end();it++)\n    {\n        cout \u003C\u003C *it \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n\n    //逻辑非  将v容器搬运到v2中，并执行逻辑非运算\n    vector\u003Cbool> v2;\n    v2.resize(v.size());\n    transform(v.begin(), v.end(),  v2.begin(), logical_not\u003Cbool>());\n    for (vector\u003Cbool>::iterator it = v2.begin(); it != v2.end(); it++)\n    {\n        cout \u003C\u003C *it \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[94,2267,2268,2274,2280,2286,2294,2298,2307,2320,2333,2345,2357,2361,2397,2401,2417,2421,2429,2433,2438,2446,2461,2490,2525,2529,2545,2549,2557,2561,2565,2573,2577,2583,2587,2591,2599],{"__ignoreMap":92},[97,2269,2270,2272],{"class":99,"line":100},[97,2271,104],{"class":103},[97,2273,728],{"class":107},[97,2275,2276,2278],{"class":99,"line":111},[97,2277,104],{"class":103},[97,2279,1601],{"class":107},[97,2281,2282,2284],{"class":99,"line":118},[97,2283,104],{"class":103},[97,2285,735],{"class":107},[97,2287,2288,2290,2292],{"class":99,"line":125},[97,2289,222],{"class":103},[97,2291,225],{"class":131},[97,2293,228],{"class":138},[97,2295,2296],{"class":99,"line":135},[97,2297,139],{"class":138},[97,2299,2300,2302,2305],{"class":99,"line":142},[97,2301,817],{"class":138},[97,2303,2304],{"class":103},"\u003Cbool>",[97,2306,823],{"class":138},[97,2308,2309,2311,2313,2315,2318],{"class":99,"line":148},[97,2310,1165],{"class":138},[97,2312,868],{"class":131},[97,2314,160],{"class":138},[97,2316,2317],{"class":256},"true",[97,2319,455],{"class":138},[97,2321,2322,2324,2326,2328,2331],{"class":99,"line":181},[97,2323,1165],{"class":138},[97,2325,868],{"class":131},[97,2327,160],{"class":138},[97,2329,2330],{"class":256},"false",[97,2332,455],{"class":138},[97,2334,2335,2337,2339,2341,2343],{"class":99,"line":187},[97,2336,1165],{"class":138},[97,2338,868],{"class":131},[97,2340,160],{"class":138},[97,2342,2317],{"class":256},[97,2344,455],{"class":138},[97,2346,2347,2349,2351,2353,2355],{"class":99,"line":202},[97,2348,1165],{"class":138},[97,2350,868],{"class":131},[97,2352,160],{"class":138},[97,2354,2330],{"class":256},[97,2356,455],{"class":138},[97,2358,2359],{"class":99,"line":208},[97,2360,115],{"emptyLinePlaceholder":114},[97,2362,2363,2365,2367,2369,2371,2374,2376,2378,2380,2382,2385,2387,2389,2391,2393,2395],{"class":99,"line":214},[97,2364,828],{"class":103},[97,2366,831],{"class":138},[97,2368,1258],{"class":131},[97,2370,846],{"class":138},[97,2372,2373],{"class":103},"bool",[97,2375,890],{"class":138},[97,2377,328],{"class":103},[97,2379,930],{"class":138},[97,2381,901],{"class":131},[97,2383,2384],{"class":138},"();it",[97,2386,1276],{"class":103},[97,2388,930],{"class":138},[97,2390,907],{"class":131},[97,2392,2384],{"class":138},[97,2394,388],{"class":103},[97,2396,178],{"class":138},[97,2398,2399],{"class":99,"line":219},[97,2400,184],{"class":138},[97,2402,2403,2405,2407,2409,2411,2413,2415],{"class":99,"line":231},[97,2404,370],{"class":138},[97,2406,248],{"class":103},[97,2408,974],{"class":103},[97,2410,977],{"class":138},[97,2412,248],{"class":103},[97,2414,1306],{"class":107},[97,2416,334],{"class":138},[97,2418,2419],{"class":99,"line":236},[97,2420,205],{"class":138},[97,2422,2423,2425,2427],{"class":99,"line":242},[97,2424,245],{"class":138},[97,2426,248],{"class":103},[97,2428,270],{"class":138},[97,2430,2431],{"class":99,"line":273},[97,2432,115],{"emptyLinePlaceholder":114},[97,2434,2435],{"class":99,"line":279},[97,2436,2437],{"class":121},"    //逻辑非  将v容器搬运到v2中，并执行逻辑非运算\n",[97,2439,2440,2442,2444],{"class":99,"line":284},[97,2441,817],{"class":138},[97,2443,2304],{"class":103},[97,2445,199],{"class":138},[97,2447,2448,2451,2454,2456,2459],{"class":99,"line":290},[97,2449,2450],{"class":138},"    v2.",[97,2452,2453],{"class":131},"resize",[97,2455,898],{"class":138},[97,2457,2458],{"class":131},"size",[97,2460,916],{"class":138},[97,2462,2463,2466,2468,2470,2472,2474,2477,2479,2481,2484,2486,2488],{"class":99,"line":298},[97,2464,2465],{"class":131},"    transform",[97,2467,898],{"class":138},[97,2469,901],{"class":131},[97,2471,904],{"class":138},[97,2473,907],{"class":131},[97,2475,2476],{"class":138},"(),  v2.",[97,2478,901],{"class":131},[97,2480,910],{"class":138},[97,2482,2483],{"class":131},"logical_not",[97,2485,846],{"class":138},[97,2487,2373],{"class":103},[97,2489,2103],{"class":138},[97,2491,2492,2494,2496,2498,2500,2502,2504,2506,2509,2511,2513,2515,2517,2519,2521,2523],{"class":99,"line":303},[97,2493,828],{"class":103},[97,2495,831],{"class":138},[97,2497,1258],{"class":131},[97,2499,846],{"class":138},[97,2501,2373],{"class":103},[97,2503,890],{"class":138},[97,2505,328],{"class":103},[97,2507,2508],{"class":138}," v2.",[97,2510,901],{"class":131},[97,2512,1273],{"class":138},[97,2514,1276],{"class":103},[97,2516,2508],{"class":138},[97,2518,907],{"class":131},[97,2520,1283],{"class":138},[97,2522,388],{"class":103},[97,2524,178],{"class":138},[97,2526,2527],{"class":99,"line":309},[97,2528,184],{"class":138},[97,2530,2531,2533,2535,2537,2539,2541,2543],{"class":99,"line":317},[97,2532,370],{"class":138},[97,2534,248],{"class":103},[97,2536,974],{"class":103},[97,2538,977],{"class":138},[97,2540,248],{"class":103},[97,2542,1306],{"class":107},[97,2544,334],{"class":138},[97,2546,2547],{"class":99,"line":322},[97,2548,205],{"class":138},[97,2550,2551,2553,2555],{"class":99,"line":337},[97,2552,245],{"class":138},[97,2554,248],{"class":103},[97,2556,270],{"class":138},[97,2558,2559],{"class":99,"line":342},[97,2560,276],{"class":138},[97,2562,2563],{"class":99,"line":362},[97,2564,115],{"emptyLinePlaceholder":114},[97,2566,2567,2569,2571],{"class":99,"line":367},[97,2568,163],{"class":103},[97,2570,617],{"class":131},[97,2572,620],{"class":138},[97,2574,2575],{"class":99,"line":382},[97,2576,115],{"emptyLinePlaceholder":114},[97,2578,2579,2581],{"class":99,"line":397},[97,2580,1014],{"class":131},[97,2582,646],{"class":138},[97,2584,2585],{"class":99,"line":402},[97,2586,115],{"emptyLinePlaceholder":114},[97,2588,2589],{"class":99,"line":407},[97,2590,115],{"emptyLinePlaceholder":114},[97,2592,2593,2595,2597],{"class":99,"line":418},[97,2594,662],{"class":103},[97,2596,331],{"class":256},[97,2598,334],{"class":138},[97,2600,2601],{"class":99,"line":423},[97,2602,276],{"class":138},[23,2604,2605,1041],{},[26,2606,676],{},[23,2608,2609],{},"总结：逻辑仿函数实际应用较少，了解即可",[2611,2612,2613],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":92,"searchDepth":111,"depth":111,"links":2615},[2616],{"id":12,"depth":111,"text":13,"children":2617},[2618,2619,2620],{"id":17,"depth":118,"text":17},{"id":688,"depth":118,"text":688},{"id":1483,"depth":118,"text":1483},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","16.7",16070000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","zh-CN","zh-cn",{},{"title":5,"description":92},"kSocK550VRIL9Gjwmt9nsyxbvy-o5o2mH1qURIErC3o",[2640,2646,2651,2657,2663,2669,2675,2681,2687,2693,2699,2705,2711,2717,2723,2729,2735,2741,2747,2753,2754,2760,2766,2772,2778,2784,2790,2796,2802,2808,2814,2820,2826,2832,2838,2844,2850,2856,2862,2868,2874,2880,2886,2892,2898,2904,2910,2916,2922,2928,2934,2940,2946,2952,2958,2964,2970,2976,2982,2988,2994,3000,3006,3012,3018,3024,3030,3036,3042,3048],{"path":2641,"stem":2642,"title":2643,"date":2624,"chapter":2644,"chapterSort":2645,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识","1",1000000,{"path":2647,"stem":2648,"title":2649,"date":2624,"chapter":257,"chapterSort":2650,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期",10000000,{"path":2652,"stem":2653,"title":2654,"date":2624,"chapter":2655,"chapterSort":2656,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","wiki/2023-10-05-Cplusplus教学/ch11-引用","引用","11",11000000,{"path":2658,"stem":2659,"title":2660,"date":2624,"chapter":2661,"chapterSort":2662,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":2664,"stem":2665,"title":2666,"date":2624,"chapter":2667,"chapterSort":2668,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":2670,"stem":2671,"title":2672,"date":2624,"chapter":2673,"chapterSort":2674,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理","对象初始化和清理","13.2",13020000,{"path":2676,"stem":2677,"title":2678,"date":2624,"chapter":2679,"chapterSort":2680,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":2682,"stem":2683,"title":2684,"date":2624,"chapter":2685,"chapterSort":2686,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":2688,"stem":2689,"title":2690,"date":2624,"chapter":2691,"chapterSort":2692,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch13-5-继承","继承","13.5",13050000,{"path":2694,"stem":2695,"title":2696,"date":2624,"chapter":2697,"chapterSort":2698,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":2700,"stem":2701,"title":2702,"date":2624,"chapter":2703,"chapterSort":2704,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":2706,"stem":2707,"title":2708,"date":2624,"chapter":2709,"chapterSort":2710,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","wiki/2023-10-05-Cplusplus教学/ch14-文件操作","文件操作","14",14000000,{"path":2712,"stem":2713,"title":2714,"date":2624,"chapter":2715,"chapterSort":2716,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":2718,"stem":2719,"title":2720,"date":2624,"chapter":2721,"chapterSort":2722,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":2724,"stem":2725,"title":2726,"date":2624,"chapter":2727,"chapterSort":2728,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":2730,"stem":2731,"title":2732,"date":2624,"chapter":2733,"chapterSort":2734,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":2736,"stem":2737,"title":2738,"date":2624,"chapter":2739,"chapterSort":2740,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":2742,"stem":2743,"title":2744,"date":2624,"chapter":2745,"chapterSort":2746,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":2748,"stem":2749,"title":2750,"date":2624,"chapter":2751,"chapterSort":2752,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":2621,"stem":2630,"title":5,"date":2624,"chapter":2622,"chapterSort":2623,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},{"path":2755,"stem":2756,"title":2757,"date":2624,"chapter":2758,"chapterSort":2759,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":2761,"stem":2762,"title":2763,"date":2624,"chapter":2764,"chapterSort":2765,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":2767,"stem":2768,"title":2769,"date":2624,"chapter":2770,"chapterSort":2771,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":2773,"stem":2774,"title":2775,"date":2624,"chapter":2776,"chapterSort":2777,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","auto","18.1",18010000,{"path":2779,"stem":2780,"title":2781,"date":2624,"chapter":2782,"chapterSort":2783,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":2785,"stem":2786,"title":2787,"date":2624,"chapter":2788,"chapterSort":2789,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式","Lambda 表达式","18.11",18110000,{"path":2791,"stem":2792,"title":2793,"date":2624,"chapter":2794,"chapterSort":2795,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","std::function","18.12",18120000,{"path":2797,"stem":2798,"title":2799,"date":2624,"chapter":2800,"chapterSort":2801,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":2803,"stem":2804,"title":2805,"date":2624,"chapter":2806,"chapterSort":2807,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":2809,"stem":2810,"title":2811,"date":2624,"chapter":2812,"chapterSort":2813,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":2815,"stem":2816,"title":2817,"date":2624,"chapter":2818,"chapterSort":2819,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":2821,"stem":2822,"title":2823,"date":2624,"chapter":2824,"chapterSort":2825,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":2827,"stem":2828,"title":2829,"date":2624,"chapter":2830,"chapterSort":2831,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono","std::chrono","18.18",18180000,{"path":2833,"stem":2834,"title":2835,"date":2624,"chapter":2836,"chapterSort":2837,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":2839,"stem":2840,"title":2841,"date":2624,"chapter":2842,"chapterSort":2843,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":2845,"stem":2846,"title":2847,"date":2624,"chapter":2848,"chapterSort":2849,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":2851,"stem":2852,"title":2853,"date":2624,"chapter":2854,"chapterSort":2855,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":2857,"stem":2858,"title":2859,"date":2624,"chapter":2860,"chapterSort":2861,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":2863,"stem":2864,"title":2865,"date":2624,"chapter":2866,"chapterSort":2867,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":2869,"stem":2870,"title":2871,"date":2624,"chapter":2872,"chapterSort":2873,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":2875,"stem":2876,"title":2877,"date":2624,"chapter":2878,"chapterSort":2879,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":2881,"stem":2882,"title":2883,"date":2624,"chapter":2884,"chapterSort":2885,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","using","18.3",18030000,{"path":2887,"stem":2888,"title":2889,"date":2624,"chapter":2890,"chapterSort":2891,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class","enum class","18.4",18040000,{"path":2893,"stem":2894,"title":2895,"date":2624,"chapter":2896,"chapterSort":2897,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":2899,"stem":2900,"title":2901,"date":2624,"chapter":2902,"chapterSort":2903,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":2905,"stem":2906,"title":2907,"date":2624,"chapter":2908,"chapterSort":2909,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","constexpr","18.7",18070000,{"path":2911,"stem":2912,"title":2913,"date":2624,"chapter":2914,"chapterSort":2915,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":2917,"stem":2918,"title":2919,"date":2624,"chapter":2920,"chapterSort":2921,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":2923,"stem":2924,"title":2925,"date":2624,"chapter":2926,"chapterSort":2927,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++","18",18000000,{"path":2929,"stem":2930,"title":2931,"date":2624,"chapter":2932,"chapterSort":2933,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":2935,"stem":2936,"title":2937,"date":2624,"chapter":2938,"chapterSort":2939,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":2941,"stem":2942,"title":2943,"date":2624,"chapter":2944,"chapterSort":2945,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":2947,"stem":2948,"title":2949,"date":2624,"chapter":2950,"chapterSort":2951,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":2953,"stem":2954,"title":2955,"date":2624,"chapter":2956,"chapterSort":2957,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":2959,"stem":2960,"title":2961,"date":2624,"chapter":2962,"chapterSort":2963,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":2965,"stem":2966,"title":2967,"date":2624,"chapter":2968,"chapterSort":2969,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":2971,"stem":2972,"title":2973,"date":2624,"chapter":2974,"chapterSort":2975,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":2977,"stem":2978,"title":2979,"date":2624,"chapter":2980,"chapterSort":2981,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":2983,"stem":2984,"title":2985,"date":2624,"chapter":2986,"chapterSort":2987,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":2989,"stem":2990,"title":2991,"date":2624,"chapter":2992,"chapterSort":2993,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":2995,"stem":2996,"title":2997,"date":2624,"chapter":2998,"chapterSort":2999,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":3001,"stem":3002,"title":3003,"date":2624,"chapter":3004,"chapterSort":3005,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放","2",2000000,{"path":3007,"stem":3008,"title":3009,"date":2624,"chapter":3010,"chapterSort":3011,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出","3",3000000,{"path":3013,"stem":3014,"title":3015,"date":2624,"chapter":3016,"chapterSort":3017,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符","4",4000000,{"path":3019,"stem":3020,"title":3021,"date":2624,"chapter":3022,"chapterSort":3023,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构","5",5000000,{"path":3025,"stem":3026,"title":3027,"date":2624,"chapter":3028,"chapterSort":3029,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组","6",6000000,{"path":3031,"stem":3032,"title":3033,"date":2624,"chapter":3034,"chapterSort":3035,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":3037,"stem":3038,"title":3039,"date":2624,"chapter":3040,"chapterSort":3041,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":3043,"stem":3044,"title":3045,"date":2624,"chapter":3046,"chapterSort":3047,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":2631},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":2627,"stem":3049,"title":3050,"date":2624,"chapter":2632,"chapterSort":3051,"docKey":2626,"docRoot":2627,"docTitle":2628,"isWikiDoc":114,"isWikiIndex":114},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":3053},[3054,3057,3060,3063,3066],{"path":3055,"localeSlug":3056,"i18nKey":2630},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","en-us",{"path":3058,"localeSlug":3059,"i18nKey":2630},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","zh-hant",{"path":3061,"localeSlug":3062,"i18nKey":2630},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","zh-hk",{"path":3064,"localeSlug":3065,"i18nKey":2630},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","zh-tw",{"path":2621,"localeSlug":2635,"i18nKey":2630},[3055,2633,3058,2633,3061,2633,3064,2633,2621,2633],1780663033500]