自己做的网站怎样对接支付宝,网络推广专员考核指标,网站文案编辑怎么做,哈尔滨高端网站设计C new 可以很方便的 分配一段内存。 比如 int *test new int ;int n;cinn;int * test new int [n];
可以实现动态分配内存#xff0c;比c的malloc 简洁多了#xff0c; 同样也能new 一个 结构体。总之挺方便的。 new 之后 不用了 要用delet free 内存 另外对空指…C new 可以很方便的 分配一段内存。 比如 int *test new int ;int n;cinn;int * test new int [n];
可以实现动态分配内存比c的malloc 简洁多了 同样也能new 一个 结构体。总之挺方便的。 new 之后 不用了 要用delet free 内存 另外对空指针delete 是安全的。 模板类vector也是一种动态数组。 用法 vectortypename vt {n_elem}; 模板类array不是动态滴~ 用法 arraytypename,n_elem vt {}; C的for循环多了一种新特性可以基于范围。 for(double x:nums){xx*100;
} 在for中 用于循环用的i 和i 前缀格式和后缀格式前缀格式 就将值加一然后返回。 但后缀版本会首先复制一个副本将其加1然后将其复制的副本返回。 但是经过我 ida 看汇编的结构确是相反的这个问题 main proc near ; CODE XREF: _main_0↑j
.text:00414920
.text:00414920 var_D8 byte ptr -0D8h
.text:00414920 j dword ptr -14h
.text:00414920 i dword ptr -8
.text:00414920
.text:00414920 push ebp
.text:00414921 mov ebp, esp
.text:00414923 sub esp, 0D8h
.text:00414929 push ebx
.text:0041492A push esi
.text:0041492B push edi
.text:0041492C lea edi, [ebpvar_D8]
.text:00414932 mov ecx, 36h
.text:00414937 mov eax, 0CCCCCCCCh
.text:0041493C rep stosd
.text:0041493E mov [ebpi], 0
.text:00414945 jmp short loc_414950
.text:00414947 ; ---------------------------------------------------------------------------
.text:00414947
.text:00414947 loc_414947: ; CODE XREF: _main65↓j
.text:00414947 mov eax, [ebpi]
.text:0041494A add eax, 1
.text:0041494D mov [ebpi], eax
.text:00414950
.text:00414950 loc_414950: ; CODE XREF: _main25↑j
.text:00414950 cmp [ebpi], 5
.text:00414954 jge short loc_414987
.text:00414956 mov esi, esp
.text:00414958 push offset j_??$endlDU?$char_traitsDstdstdYAAAV?$basic_ostreamDU?$char_traitsDstd0AAV10Z ; std::endlchar,std::char_traitschar(std::basic_ostreamchar,std::char_traitschar )
.text:0041495D mov edi, esp
.text:0041495F mov eax, [ebpi]
.text:00414962 push eax
.text:00414963 mov ecx, ds:__imp_?coutstd3V?$basic_ostreamDU?$char_traitsDstd1A.gap0 ; std::basic_ostreamchar,std::char_traitschar std::cout
.text:00414969 call ds:__imp_??6?$basic_ostreamDU?$char_traitsDstdstdQAEAAV01HZ ; std::basic_ostreamchar,std::char_traitschar::operator(int)
.text:0041496F cmp edi, esp
.text:00414971 call j___RTC_CheckEsp
.text:00414976 mov ecx, eax
.text:00414978 call ds:__imp_??6?$basic_ostreamDU?$char_traitsDstdstdQAEAAV01P6AAAV01AAV01ZZ ; std::basic_ostreamchar,std::char_traitschar::operator(std::basic_ostreamchar,std::char_traitschar (*)(std::basic_ostreamchar,std::char_traitschar ))
.text:0041497E cmp esi, esp
.text:00414980 call j___RTC_CheckEsp
.text:00414985 jmp short loc_414947
.text:00414987 ; ---------------------------------------------------------------------------
.text:00414987
.text:00414987 loc_414987: ; CODE XREF: _main34↑j
.text:00414987 mov [ebpj], 0
.text:0041498E jmp short loc_414999
.text:00414990 ; ---------------------------------------------------------------------------
.text:00414990
.text:00414990 loc_414990: ; CODE XREF: _mainAE↓j
.text:00414990 mov eax, [ebpj]
.text:00414993 add eax, 1
.text:00414996 mov [ebpj], eax
.text:00414999
.text:00414999 loc_414999: ; CODE XREF: _main6E↑j
.text:00414999 cmp [ebpj], 5
.text:0041499D jge short loc_4149D0
.text:0041499F mov esi, esp
.text:004149A1 push offset j_??$endlDU?$char_traitsDstdstdYAAAV?$basic_ostreamDU?$char_traitsDstd0AAV10Z ; std::endlchar,std::char_traitschar(std::basic_ostreamchar,std::char_traitschar )
.text:004149A6 mov edi, esp
.text:004149A8 mov eax, [ebpj]
.text:004149AB push eax
.text:004149AC mov ecx, ds:__imp_?coutstd3V?$basic_ostreamDU?$char_traitsDstd1A.gap0 ; std::basic_ostreamchar,std::char_traitschar std::cout
.text:004149B2 call ds:__imp_??6?$basic_ostreamDU?$char_traitsDstdstdQAEAAV01HZ ; std::basic_ostreamchar,std::char_traitschar::operator(int)
.text:004149B8 cmp edi, esp
.text:004149BA call j___RTC_CheckEsp
.text:004149BF mov ecx, eax
.text:004149C1 call ds:__imp_??6?$basic_ostreamDU?$char_traitsDstdstdQAEAAV01P6AAAV01AAV01ZZ ; std::basic_ostreamchar,std::char_traitschar::operator(std::basic_ostreamchar,std::char_traitschar (*)(std::basic_ostreamchar,std::char_traitschar ))
.text:004149C7 cmp esi, esp
.text:004149C9 call j___RTC_CheckEsp
.text:004149CE jmp short loc_414990 for (i 0; i 5; i) {cout i endl;}for (j 0; j 5; j) {cout j endl;} 恰恰相反。 const 这个标志符的作用也蛮大的可以防止数据被修改但是如果是一个指针指向一个变量这个指针用了const这样这个指针就不能修改这个数据但是还是可以通过变量名字修改。 比较有趣的是函数指针int (*pd)(int ); 可以直接把指针指向函数名就能执行了。用tpyedef 也能定义。挺有趣的。 今天在leetcode 做一道题的时候遇到了一个问题 runtime error: member access within null pointer of type struct ListNode while(l1!NULL||l2!NULL){sum0;if(l1-next!NULL) {yl1-val;l1l1-next;}if(l2-next!NULL) {yl2-val;l2l2-next;} 我就用了这种方法后来想了想看了下别人的发现这个错误在哪里了如果l1 或者l2 有一个已经为NULL的时候这时还能进入while中但是如果 l1-next或者l2-next的时候那个已经为空的指针就会访问到但是他是NULL NULL并没有-next利用引用因为他不是ListNode 结构体。 今天也了解到 hashmaphashmap 在遍历里面的元素时所用的时间复杂度为O1这样在某些题目中可以用空间获取时间来获得最优解。 MapInteger,Integer map new HashMap(); map 有不少内置的方法可以使用还不错。转载于:https://www.cnblogs.com/liyuechan/p/10933970.html