将对象初始化:

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相关使用的更多相关文章

  1. [翻译] C++ STL容器参考手册(第一章 <array>)

    返回总册 本章节原文:http://www.cplusplus.com/reference/array/array/ 1. std::array (C++11支持) template < cla ...

  2. #《Essential C++》读书笔记# 第一章 C++ 编程基础

    前言 Stanley B.Lippman 先生所著的<C++ Primer>是学习C++的一本非常优秀的教科书,但<C++ Primer>作为一本大部头书,显然不适合所有的初学 ...

  3. Ionic 入门与实战之第一章:Ionic 介绍与相关学习资源

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第一章,主要对 Ionic 的概念.发展历程.适配的移动平台等知识进行了介绍,并分享了 Ionic 相关的学习资源. 原文发表于我的技 ...

  4. 算法<初级> - 第一章 排序相关问题

    算法 - 第一章 时间复杂度: Big O 时间/空间复杂度计算一样,都是跟输入数据源的大小有关 n->∞ O(logn) 每次只使用数据源的一半,logn同理 最优解 先满足时间复杂度的情况最 ...

  5. 第一章 C++编程基础

    第一章 C++编程基础 1.1 如何撰写C++程序 赋值 assignment复合赋值 (compound assignment) += 函数(function)是一块独立的程序代码序列(code s ...

  6. PRML读书会第一章 Introduction(机器学习基本概念、学习理论、模型选择、维灾等)

    主讲人 常象宇 大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章.估计都是大神觉得第一章比较简单,所以就由我来吧.我的背景是统计与数学,稍懂 ...

  7. Solidity 中文文档 —— 第一章:Introduction to Smart Contracts

    第一章:智能合约简介 粗略地翻译了 Ethereum 的智能合约开发语言的文档:Solidity.欢迎转载,注明出处. 有任何问题请联系我,本人微信:wx1076869692,更多详情见文末. 我是 ...

  8. Day1 《机器学习》第一章学习笔记

    <机器学习>这本书算是很好的一本了解机器学习知识的一本入门书籍吧,是南京大学周志华老师所著的鸿篇大作,很早就听闻周老师大名了,算是国内机器学习领域少数的大牛了吧,刚好研究生做这个方向相关的 ...

  9. [OpenGL红宝书]第一章 OpenGL概述

    第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向Op ...

随机推荐

  1. Ajax 学习 第二篇

    XMLHttpRequest发送请求 open(method,url,async) 解释 method:do/post,不区分大小写 URL:相对地址 文档地址 async:默认为TRUE 即异步 F ...

  2. MVC 2nd

    步骤 3 创建控制器. StudentController.java public class StudentController { private Student model; private S ...

  3. ArcGIS案例学习笔记4_2_水文分析批处理地理建模

    ArcGIS案例学习笔记4_2_水文分析批处理地理建模 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 概述 计划时间:第4天下午 目的:自动化,批量化,批处理,提 ...

  4. spring boot 的服务监控

  5. C# WCF初识

    原文:http://www.cnblogs.com/artech/archive/2007/02/26/656901.html 方式1: 需引用 System.ServiceModel namespa ...

  6. web前端面试题整理

    1.在浏览器解析原理?2.ES5 的Object.defineProperties3.css3新属性的优势?4.vue 的computed和method的区别5.html5 的十个新特性6.web s ...

  7. wget 报错 OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failur

    解决办法 换成 curl -O -L xxxxxxxx

  8. xlrd使用

    import xlrd //导入模块filename='路径/文件名' //文件路径.名称python读取excel中单元格的内容返回的有5种类型,即ctype:0. empty(空的),1 stri ...

  9. metasploit framework(二):记一次入侵

    msfconsole use 其中一个 exploit前台执行注入 后台执行shell 加-j 通过sessions查看后台执行的shell,可以看到这个会话的id号为2 进入会话,sessions ...

  10. ORACLE 如何产生一个随机数

    1.select dbms_random.string('x', 3) from dual ; x是类型,3是长度. /* opt可取值如下: 'u','U'    :    大写字母 'l','L' ...