C++学习第二天(打卡)
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++学习第二天(打卡)相关推荐
- 四天人工智能 python入门体验课_百度深度学习7天打卡营,用Python+AI识别“青你2”小姐姐的高颜值...
原标题:百度深度学习7天打卡营,用Python+AI识别"青你2"小姐姐的高颜值 "淡黄的长裙,蓬松的头发",一夜之间洗脑全网,小姐姐们实在太让人上头了! 导师 ...
- activiti高亮显示图片_【正点原子FPGA连载】第二十章SD卡读BMP图片HDMI显示实验领航者 ZYNQ 之嵌入式开发指南...
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- Ubuntu16.06 单Nvidia显卡 深度学习运行时 界面卡顿(刷新慢)的解决方法
关于Ubuntu单Nvidia显卡 深度学习运行时 界面卡顿(刷新慢)的解决方法 背景 我在按照 本链接 的第二种方法安装后,成功安装cuda 10.0与cudnn之后,在深度学习训练过程中发现了严重 ...
- 游戏策划学习第二十八天
游戏策划学习第二十八天 5/30 ppt又要改,做视频的计划要在麦克风到了以后再继续了 创意授权与反馈 讲书之前讲一讲最近的mc dungeon.实际上算是一个fan向游戏,游戏类型是简化+像素卡通化 ...
- 百度深度学习paddlepaddle7日打卡——Python小白逆袭大神学习心得
百度深度学习paddlepaddle7日打卡--Python小白逆袭大神学习心得 7日学习总结 第一天作业 第二天作业 第三天作业 第四天作业 第五天作业 7日学习总结 通过这7日打卡课程的学习,从小 ...
- 游戏策划学习第二十四天
游戏策划学习第二十四天 5/23 5.社交:社交影响与关联性 6.稀缺:稀缺性与渴望 7.未知:未知性与好奇心 8.亏损:亏损与逃避心 最近在玩百闻牌,那就用百闻牌来思考这四项内容. 5.社交并不只是 ...
- 《Javascript入门学习全集》 Javascript学习第二季(实战4)
Javascript学习第二季(实战4) 上章的例子虽然实现了功能,也做了相应的判断,也符合标准了.但还有一个问题就是: Choose an image. 在html中只是为了图片切换 而做的,而 ...
- 再发力!Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]无监督学习再发力!Facebook AI 研究团队的陈鑫磊.樊昊棋.Ros ...
- jQuery框架学习第二天:jQuery中万能的选择器
jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQu ...
- React 学习第二天 2018-07-21
React 学习第二天 我这个React 学习存在以下毛病 1.不报错, 2.不能自动热加载,不能自动刷新 3.不能修改props 属性的值,但是这个却能够修改. 1.Vue 和React的关于 k ...
最新文章
- 页面滚动动态加载数据,页面下拉自动加载内容
- TRUNK配置详细讲解
- Hi3516A开发--USB PCB 设计建议
- oracle9i新建数据库的用户有哪些,Oracle 9i数据库的用户创造以及权限分配
- maven学习5 构建MyBatis项目
- .net java 开源_为什么说微软开源 .net 也拼不过 java?
- LeetCode962. 最大宽度坡
- [团队项目]典型用户 - 场景(用户故事) - 任务 - 具体工作流程
- shell 函数和数组
- python 笔记 冒泡排序
- 人人译视界 for Mac(智能翻译软件)
- 基于暗通道先验的单幅图像去雾
- his系统管理工具配置服务器,HIS系统(his管理系统)V3.0.1 官网版
- 淘宝客赚钱方式及怎么入门和推广引流详解
- 五、 线性判别分析 LDA
- 3D游戏建模学习路线
- Java中构造方法的案例及常用类int lenght类的使用方法举例,new实例化对象方法,静态方法实例方法的举例
- Fluid Mask 抠图 换背景教程
- Nvidia驱动卸载干净了,新驱动却还是安装不上?
- .osr 文件格式解析(二) - 数据类型
热门文章
- CSS之Responsive设计和CSS3 Media Queries的结合
- [Github项目推荐] 机器学习 Python 知识点速查表
- python爬取酷狗音乐top500_Python爬取酷狗Top500的歌曲!够你吹个小牛皮了吧!
- 虚拟机上的Linux学习
- PyAutoIt 安装(Windows 版)
- [AH/HNOI2017]大佬
- PAT甲题题解-1128. N Queens Puzzle (20)-做了一个假的n皇后问题
- Serena Dimensions 介绍
- 2.3线性表的链式存储和运算—单链表应用举例
- VS2012 发布网站步骤