C++ new 可以很方便的 分配一段内存。

比如  int *test= new int ;int n;cin>>n;int * test =new int [n];
可以实现动态分配内存,比c的malloc 简洁多了,

  同样也能new 一个 结构体。总之挺方便的。

new 之后 不用了 要用delet free 内存

另外对空指针delete 是安全的。

  模板类:vector,也是一种动态数组。

用法 vector<typename> vt {n_elem};

  模板类:array,不是动态滴~

用法 array<typename,n_elem> vt {};

C++的for循环多了一种新特性:可以基于范围。

for(double x:nums){x=x*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, [ebp+var_D8]
.text:00414932                 mov     ecx, 36h
.text:00414937                 mov     eax, 0CCCCCCCCh
.text:0041493C                 rep stosd
.text:0041493E                 mov     [ebp+i], 0
.text:00414945                 jmp     short loc_414950
.text:00414947 ; ---------------------------------------------------------------------------
.text:00414947
.text:00414947 loc_414947:                             ; CODE XREF: _main+65↓j
.text:00414947                 mov     eax, [ebp+i]
.text:0041494A                 add     eax, 1
.text:0041494D                 mov     [ebp+i], eax
.text:00414950
.text:00414950 loc_414950:                             ; CODE XREF: _main+25↑j
.text:00414950                 cmp     [ebp+i], 5
.text:00414954                 jge     short loc_414987
.text:00414956                 mov     esi, esp
.text:00414958                 push    offset j_??$endl@DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@@Z ; std::endl<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &)
.text:0041495D                 mov     edi, esp
.text:0041495F                 mov     eax, [ebp+i]
.text:00414962                 push    eax
.text:00414963                 mov     ecx, ds:__imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A.gap0 ; std::basic_ostream<char,std::char_traits<char>> std::cout
.text:00414969                 call    ds:__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z ; std::basic_ostream<char,std::char_traits<char>>::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_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z ; std::basic_ostream<char,std::char_traits<char>>::operator<<(std::basic_ostream<char,std::char_traits<char>> & (*)(std::basic_ostream<char,std::char_traits<char>> &))
.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: _main+34↑j
.text:00414987                 mov     [ebp+j], 0
.text:0041498E                 jmp     short loc_414999
.text:00414990 ; ---------------------------------------------------------------------------
.text:00414990
.text:00414990 loc_414990:                             ; CODE XREF: _main+AE↓j
.text:00414990                 mov     eax, [ebp+j]
.text:00414993                 add     eax, 1
.text:00414996                 mov     [ebp+j], eax
.text:00414999
.text:00414999 loc_414999:                             ; CODE XREF: _main+6E↑j
.text:00414999                 cmp     [ebp+j], 5
.text:0041499D                 jge     short loc_4149D0
.text:0041499F                 mov     esi, esp
.text:004149A1                 push    offset j_??$endl@DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@@Z ; std::endl<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &)
.text:004149A6                 mov     edi, esp
.text:004149A8                 mov     eax, [ebp+j]
.text:004149AB                 push    eax
.text:004149AC                 mov     ecx, ds:__imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A.gap0 ; std::basic_ostream<char,std::char_traits<char>> std::cout
.text:004149B2                 call    ds:__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z ; std::basic_ostream<char,std::char_traits<char>>::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_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z ; std::basic_ostream<char,std::char_traits<char>>::operator<<(std::basic_ostream<char,std::char_traits<char>> & (*)(std::basic_ostream<char,std::char_traits<char>> &))
.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){sum=0;if(l1->next!=NULL) {y=l1->val;l1=l1->next;}if(l2->next!=NULL) {y=l2->val;l2=l2->next;}

我就用了这种方法,后来想了想,看了下别人的,发现这个错误在哪里了,如果l1 或者l2 有一个已经为NULL的时候,这时还能进入while中,但是如果 (l1->next或者l2->next)的时候,那个已经为空的指针就会访问到,但是他是NULL NULL并没有->next利用引用,因为他不是ListNode 结构体。

今天也了解到 hashmap,hashmap 在遍历里面的元素时所用的时间复杂度为O(1);这样在某些题目中可以用空间获取时间来获得最优解。

 Map<Integer,Integer> map = new HashMap<>();

map 有不少内置的方法可以使用,还不错。

转载于:https://www.cnblogs.com/liyuechan/p/10933970.html

C++学习第二天(打卡)相关推荐

  1. 四天人工智能 python入门体验课_百度深度学习7天打卡营,用Python+AI识别“青你2”小姐姐的高颜值...

    原标题:百度深度学习7天打卡营,用Python+AI识别"青你2"小姐姐的高颜值 "淡黄的长裙,蓬松的头发",一夜之间洗脑全网,小姐姐们实在太让人上头了! 导师 ...

  2. activiti高亮显示图片_【正点原子FPGA连载】第二十章SD卡读BMP图片HDMI显示实验领航者 ZYNQ 之嵌入式开发指南...

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  3. Ubuntu16.06 单Nvidia显卡 深度学习运行时 界面卡顿(刷新慢)的解决方法

    关于Ubuntu单Nvidia显卡 深度学习运行时 界面卡顿(刷新慢)的解决方法 背景 我在按照 本链接 的第二种方法安装后,成功安装cuda 10.0与cudnn之后,在深度学习训练过程中发现了严重 ...

  4. 游戏策划学习第二十八天

    游戏策划学习第二十八天 5/30 ppt又要改,做视频的计划要在麦克风到了以后再继续了 创意授权与反馈 讲书之前讲一讲最近的mc dungeon.实际上算是一个fan向游戏,游戏类型是简化+像素卡通化 ...

  5. 百度深度学习paddlepaddle7日打卡——Python小白逆袭大神学习心得

    百度深度学习paddlepaddle7日打卡--Python小白逆袭大神学习心得 7日学习总结 第一天作业 第二天作业 第三天作业 第四天作业 第五天作业 7日学习总结 通过这7日打卡课程的学习,从小 ...

  6. 游戏策划学习第二十四天

    游戏策划学习第二十四天 5/23 5.社交:社交影响与关联性 6.稀缺:稀缺性与渴望 7.未知:未知性与好奇心 8.亏损:亏损与逃避心 最近在玩百闻牌,那就用百闻牌来思考这四项内容. 5.社交并不只是 ...

  7. 《Javascript入门学习全集》 Javascript学习第二季(实战4)

    Javascript学习第二季(实战4)   上章的例子虽然实现了功能,也做了相应的判断,也符合标准了.但还有一个问题就是: Choose an image. 在html中只是为了图片切换 而做的,而 ...

  8. 再发力!Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]无监督学习再发力!Facebook AI 研究团队的陈鑫磊.樊昊棋.Ros ...

  9. jQuery框架学习第二天:jQuery中万能的选择器

    jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQu ...

  10. React  学习第二天 2018-07-21

    React  学习第二天 我这个React 学习存在以下毛病 1.不报错, 2.不能自动热加载,不能自动刷新 3.不能修改props 属性的值,但是这个却能够修改. 1.Vue 和React的关于 k ...

最新文章

  1. 页面滚动动态加载数据,页面下拉自动加载内容
  2. TRUNK配置详细讲解
  3. Hi3516A开发--USB PCB 设计建议
  4. oracle9i新建数据库的用户有哪些,Oracle 9i数据库的用户创造以及权限分配
  5. maven学习5 构建MyBatis项目
  6. .net java 开源_为什么说微软开源 .net 也拼不过 java?
  7. LeetCode962. 最大宽度坡
  8. [团队项目]典型用户 - 场景(用户故事) - 任务 - 具体工作流程
  9. shell 函数和数组
  10. python 笔记 冒泡排序
  11. 人人译视界 for Mac(智能翻译软件)
  12. 基于暗通道先验的单幅图像去雾
  13. his系统管理工具配置服务器,HIS系统(his管理系统)V3.0.1 官网版
  14. 淘宝客赚钱方式及怎么入门和推广引流详解
  15. 五、 线性判别分析 LDA
  16. 3D游戏建模学习路线
  17. Java中构造方法的案例及常用类int lenght类的使用方法举例,new实例化对象方法,静态方法实例方法的举例
  18. Fluid Mask 抠图 换背景教程
  19. Nvidia驱动卸载干净了,新驱动却还是安装不上?
  20. .osr 文件格式解析(二) - 数据类型

热门文章

  1. CSS之Responsive设计和CSS3 Media Queries的结合
  2. [Github项目推荐] 机器学习 Python 知识点速查表
  3. python爬取酷狗音乐top500_Python爬取酷狗Top500的歌曲!够你吹个小牛皮了吧!
  4. 虚拟机上的Linux学习
  5. PyAutoIt 安装(Windows 版)
  6. [AH/HNOI2017]大佬
  7. PAT甲题题解-1128. N Queens Puzzle (20)-做了一个假的n皇后问题
  8. Serena Dimensions 介绍
  9. 2.3线性表的链式存储和运算—单链表应用举例
  10. VS2012 发布网站步骤