essential c++ 第一章 array及vector相关使用
将对象初始化:
1.用等号(=)赋值运算符初始化,针对对象是内置类型或者对象可以单一值初始化
2.构造函数初始化,针对对象需要多个初始值的情况
单括号括住的字符表示字符常量(‘ ’);
第一个反斜线表示转义字符的起头字符(\);
除法(/):小数点的部分被完全舍弃,不存在四舍五入;
取余(%):取得除法运算的余数部分;
条件运算符:expr ? : ;如果表达式为真(expression的值不为0),执行问号后面部分,若表达式为假(求值为0),则执行冒号后面部分;
continue:终止当前执行的这一次循环;
数组array:须定义数组元素的个数,且只能为常数值,若未定义数组元素个数,则在初始化时,根据初始值的数量,默认添加该值,定义之后的空间是固定的。
数组的索引([ ])是从下标0开始,集体初始化包括在大括号内,数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值;
错过了初始化时机,即想在数组创建结束后再对其进行初始化,
1.可以使用C函数的memset(),其中memset()函数原型是 extern void*memset(void *buffer,int c,int coount) buffer: 为指针或数组 c:是赋给buffer的值 count:是buffer的长度 ,这个函数用来对一段内存空间全部设置为某个字符,或者是对 定义的字符串进行初始化为 ‘ ’ 或 '\0'; eg: char a[100]; memset(a , '\0' , sizeof ( a ) ); 但是存在一个问题,memset只对char类型的数组管用,将a数组换成int或其他类型的,就会出现问题,因为memset的内部实现是以字节为单位进行赋值的,int类型大于一个字节(假设是4个),数组内存连续,如果有下面代码: int a[10]; memset(a,1,sizeof(a)); 将只会对前sizeof(a)即40个字节进行赋值1的操作。
2.想初始化的话,只能用循环赋值
注意:不能用数组直接初始化另一个数组,也不能将一个数组直接赋值给另一个数组,原因是C++中的数组事实上是不可变指针(const*),若想要用一个数组初始化另一个数组,有两种方法:
1:通过数组遍历,逐个赋值:for(i=o;i<4:i++) b[i]=a[i];
2:借助内存复制函数memcpy,整体赋值:原型为void* memcpy(void *dst,void*src,size_t size) 功能是将src上,大小为size字节的数据赋值到dst上; 使用时要包含头文件#include<cstring> memcpy(b,a,sizeof(a));
容器vector:使用时必须包含头文件#include<vector>,
vector是可以存放任意类型的动态数组,并且可以动态改变大小,可以把容器对象直接赋值给另一个对象
用数组对vector进行初始化:可以将vector初始化为一个已有数组的全部或一部分,只需指定希望被用来初始化vector的数组的开头地址及数组最末尾的下一个位置,vector的索引下标和array一样,也是从0开始 
以上是一些常用的vector操作,对于容器,使用迭代器操作容器中对应位置的值,当迭代器指向了容器中的某位置,可以用*加迭代器操作该位置的值。 其中,迭代器:提供了对顺序或关联容器类型中的每个元素进行连续访问的方法,每个对象都有一个,即容器与迭代器之间相互绑定,迭代器是指针的泛化,它允许程序员以相同的方式处理不同的数据结构(容器),与算法不干扰地相互发展。每个迭代器都提供一个begin()(返回指向容器的第一个元素)和end()(返回指向容器的末元素的下一个位置)成员函数,迭代器重载了*,++,==,!=,=运算符,关于迭代器的功能和类别参考博客https://blog.csdn.net/qq_23100787/article/details/51388163
注意:对于vector,若直接定义,尚未初始化,则不能直接使用下标,下标索引只能索引vector中已存在的元素,#include<vector> vector<int>ivec;//此处并未初始化,这句话是初始化了一个size为0的vector, ivec[0]=1024;//直接这么写是错误的,只能索引vector中已存在的元素 ,在此给出vector初始化及赋值的几种方式,参见https://blog.csdn.net/yjunyu/article/details/77728410?locationNum=10&fps=1
essential c++ 第一章 array及vector相关使用的更多相关文章
- [翻译] C++ STL容器参考手册(第一章 <array>)
返回总册 本章节原文:http://www.cplusplus.com/reference/array/array/ 1. std::array (C++11支持) template < cla ...
- #《Essential C++》读书笔记# 第一章 C++ 编程基础
前言 Stanley B.Lippman 先生所著的<C++ Primer>是学习C++的一本非常优秀的教科书,但<C++ Primer>作为一本大部头书,显然不适合所有的初学 ...
- Ionic 入门与实战之第一章:Ionic 介绍与相关学习资源
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第一章,主要对 Ionic 的概念.发展历程.适配的移动平台等知识进行了介绍,并分享了 Ionic 相关的学习资源. 原文发表于我的技 ...
- 算法<初级> - 第一章 排序相关问题
算法 - 第一章 时间复杂度: Big O 时间/空间复杂度计算一样,都是跟输入数据源的大小有关 n->∞ O(logn) 每次只使用数据源的一半,logn同理 最优解 先满足时间复杂度的情况最 ...
- 第一章 C++编程基础
第一章 C++编程基础 1.1 如何撰写C++程序 赋值 assignment复合赋值 (compound assignment) += 函数(function)是一块独立的程序代码序列(code s ...
- PRML读书会第一章 Introduction(机器学习基本概念、学习理论、模型选择、维灾等)
主讲人 常象宇 大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章.估计都是大神觉得第一章比较简单,所以就由我来吧.我的背景是统计与数学,稍懂 ...
- Solidity 中文文档 —— 第一章:Introduction to Smart Contracts
第一章:智能合约简介 粗略地翻译了 Ethereum 的智能合约开发语言的文档:Solidity.欢迎转载,注明出处. 有任何问题请联系我,本人微信:wx1076869692,更多详情见文末. 我是 ...
- Day1 《机器学习》第一章学习笔记
<机器学习>这本书算是很好的一本了解机器学习知识的一本入门书籍吧,是南京大学周志华老师所著的鸿篇大作,很早就听闻周老师大名了,算是国内机器学习领域少数的大牛了吧,刚好研究生做这个方向相关的 ...
- [OpenGL红宝书]第一章 OpenGL概述
第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向Op ...
随机推荐
- 扩展C#与元编程
扩展C#与元编程 https://www.cnblogs.com/knat/p/4580393.html https://www.cnblogs.com/knat/p/4584023.html 扩展C ...
- 通用坐标投影转换器Uneversal Coord Transformer
关键词:投影,重投影,坐标转换,坐标系,空间参考,北京54,西安80,中国2000,WGS84,UTM,墨卡托,网络墨卡托 软件名称:通用坐标投影转换器Uneversal Coord Transfor ...
- 关于scp在zsh报错:zsh:no matches found :
我要将某一目录下面所有文件拷贝的时候,scp *.jpg 的时候,报错 zsh: no matchs found:path 其实是zsh自己解析了*号,所以,只要给*加上就可以了\ scp \*.jp ...
- CSS----学习
CSS---表现层,修饰和表现html文档,为了解决结构层和表现层分离的问题. 通过CSS极大的提高了工作效率,方便工作人员维护和管理CSS:层叠样式表,目前用的最广泛的css版本为css2,最新版本 ...
- 兴趣点 / 关键点( Interest point/Keypoint )
• 不同视角图片之间的映射 • 稳定局部特征点 • 可重复性.显著性 • 抗图片变换 • 外貌变换(亮度.光照) ...
- mysql 模糊搜索
[mysql 模糊搜索] like,%,_,[],[^] 参考:http://www.jb51.net/article/31904.htm
- SXSSExcelUtil
package com.numa.util; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.util ...
- chromedriver和chrome匹配的版本
- EF CodeFirst学习笔记003--如何创建表
参考: http://www.cnblogs.com/Wayou/archive/2012/09/20/EF_CodeFirst.html webconfig中修改: <connectionSt ...
- jpa orderby
return criteriaQuery.where(in).orderBy(new OrderImpl(root.get("field1"))).getRestriction() ...