C++ 学习基础一
1.预处理器指示符
如果文件名用尖括号“<”和”>”括起来的,则表示该文件是工程或标准头文件,查找过程会检查预定义的目录。
如果文件名用双引号括起来,则表示该文件是用户自定义的头文件,查找该文件时将从当前文件目录开始。
2.注释块不能嵌套,即如下情况是不允许的
/*
* do not allow /**/
*/
3.文件结束符,mac上使用Ctrl + D;windows上使用Ctrl + Z;
—————-2016-07-12———————
4.string对象的输入操作符,
(1).读取并忽略开头的空白字符(如空格,换行符,制表符)
(2).读取字符直至再次遇到空白字符,读取终止.
5.用getline读取整行文本,getline返回的字符串不包含换行符
6.vector——高效的动态的添加元素
(1) 定义和初始化
- vector<T> v1;//v1默认为空
- vector<T> v2(v1);//v2是v1的副本
- vector<T> v3(n,i);//v3包含n个值为i的元素
- vector<T> v4(n);//v4含有值初始化的元素的n个副本
(2)常用操作
- v.empty();//判断v是否为空
- v.size();//返回v中元素个数,返回值类型为size_type
- v.push_back(t);//在v的末尾添加一个值为t的元素
- v[n];//返回v中位置为n的元素,下标操作不允许添加元素,只能获取指定元素
7.迭代器用于访问容器内的元素,每个容器都定义了一个名为iterator的类型。
迭代器的简单使用:
- std::vector<int>::iterator iter;
- for(iter = ivec.begin();iter!=ivec.end();iter++)
- {
- cout<<*iter<<endl;
- }
还可以通过迭代器改变vector中元素的值,具体如下:
- std::vector<int>::iterator iter;
- for(iter = ivec.begin();iter!=ivec.end();iter++)
- {
- *iter = 0;
- cout<<*iter<<endl;
- }
除了iterator类型外,还有一种const_iterator类型,该类型的迭代器只能访问vector内的元素,不能更改其元素的值。
- std::vector<int>::const_iterator citer;
- for(citer = ivec.begin();citer!= ivec.end();citer++)
- {
- cout<<"dasfjsdfj "<<*citer<<endl;
- }
8.数组
(1)非const常量以及要到运行阶段才知道其值的const常量都不能用于定义
数组的维数。如:
- const int value = 3;
- int ss_size = 30;
- const int bb_size = getsize();
- double a[ss_size];//error
- int b[value];//ok
- int c[bb_size];//error
(2)一个数组不允许使用另外一个数组初始化,也不允许将一个数组赋值给另一个数组,
如下:
- int ia[] = {0,1,2};
- int ia2[](ia);//error
- int ia3[3];//ok ,but elements are uninitialized!
- ia3 = ia;//error
(3)动态数组是只通过new 和delete分配存储空间,例如:
- int *pia = new int[10];//ok,but uninitialed
- int *pia2 = new int[10]();//ok,initialed
(4)数组变量不允许创建空数组,而动态数组可以。如下:
- char array[0];//error,cannot define zero length array
- char *cp = new char[0];//ok,但是不能对该指针进行解引用
(5)动态分配的数组最后必须显示地释放,否则最后将会逐渐耗尽。C++中使用delete[]释放指针所指向的数组空间。
- delete []pia;
(6)动态数组的使用:
通常是因为在编译时无法确定数组维数,所以使用动态创建该数组。
后续更新中......
C++ 学习基础一的更多相关文章
- 现代3D图形编程学习-基础简介(2) (译)
本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...
- 现代3D图形编程学习-基础简介(1) (译)
本书系列 现代3D图形编程学习 基础简介 并不像本书的其他章节,这章内容没有相关的源代码或是项目.本章,我们将讨论向量,图形渲染理论,以及OpenGL. 向量 在阅读这本书的时候,你需要熟悉代数和几何 ...
- JavaScript学习基础部分
JavaScript学习基础 一.简介 1.JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer. Mozilla.Firefo ...
- 【IOS学习基础】NSObject.h学习
一.<NSObject>协议和代理模式 1.在NSObject.h头文件中,我们可以看到 // NSObject类是默认遵守<NSObject>协议的 @interface N ...
- git学习基础教程
分享一个git学习基础教程 http://pan.baidu.com/s/1o6ugkGE 具体在网盘里面的内容..需要的学习可以直接下.
- c语言学习基础:[1]开发工具介绍
标签:c语言 1 2 3 4 分步阅读 学习编程语言的童鞋们一开始接触到的最多的估计就是C语言了,其次才是什么java.c++等,可以说学习c语言是我们走向编程世界的一座桥梁,学好它,对于我们学习和研 ...
- 20165318 预备作业二 学习基础和C语言基础调查
20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...
- 20165230 学习基础和C语言基础调查
20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...
- [ Java学习基础 ] Java构造函数
构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只 ...
- [ Java学习基础 ] Java的继承与多态
看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...
随机推荐
- Report_报表中Ref Cursor数据源的概念和用法(案例)
2014-06-22 Created By BaoXinjian
- NeHe OpenGL教程 第十二课:显示列表
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Yii 框架中带有区间的搜索
- [ActionScript 3.0] AS3 用于拖动对象时跟随鼠标的缓动效果
package com.fylibs.components.effects { import flash.display.DisplayObject; import flash.events.Even ...
- [ActionScript 3.0] AS3 实现XML转换成JSON
package com.fylib.util { /** * @author Frost.Yen * @E-mail 871979853@qq.com * @create 2015-6-18 下午2: ...
- 浅谈Dynamic 关键字系列之一:dynamic 就是Object(转)
C# 4.0提供了一个dynamic 关键字,那么什么是dynamic,究竟dynamic是如何工作的呢? 从最简单的示例开始: static void Main(string[] args) { d ...
- 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍
调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作.移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到.这 ...
- [SQJ]sql如何实现类似统计的功能
假设mssql2000中, 有如下表: table Class class_No course_Name ----------------------------------- chinese mat ...
- Xpath定位大全
selenium使用Xpath定位之完整篇 其中有一片文章提到了xpath元素定位,但是该文章中有些并不能适应一些特殊与个性化的场景.在文本中提供xpath元素的定位终极篇,你一定能在这里找到你需 ...
- js和jQuery前台校验文件大小
1.支持Google 不支持IE <script type="text/javascript" src="${pageContext.request.context ...