将对象初始化:

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. Java学习04 (第一遍)

    封装.抽象.继承和多态.封装:在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属 ...

  2. 吴裕雄 08-MySQL创建数据表

    MySQL 创建数据表创建MySQL数据表需要以下信息:表名表字段名定义每个表字段 语法以下为创建MySQL数据表的SQL通用语法:CREATE TABLE table_name (column_na ...

  3. 随机数模块 random模块(1)

    1.取随机小数 import random print(random.random()) # (0,1) print(random.uniform(2,3)) # (n,m) 2.取随机整数 impo ...

  4. vue router 跳转到新的窗口方法

    在CreateSendView2.vue 组件中的方法定义点击事件,vue router 跳转新的窗口通过采用如下的方法可以实现传递参数跳转相应的页面goEditor: function (index ...

  5. Excel批量修改文件

    [1]把下图片放在一个文件目录下面,如E:\SVM_Class\airplanes [2]点击“开始”→“运行”(或按快捷键win+R),在弹出框中输入“cmd”,进入dos操作界面.   [3]do ...

  6. SpringBoot @Aspect

    1.添加maven依赖注解 <!--springBoot的aop--> <dependency> <groupId>org.springframework.boot ...

  7. msf客户端渗透(五):注册表

    先获取到一个session 上传nc到被攻击主机上 建立一个键值 创建一个策略 kali上查看是否成功创建键值 后台开启cmd 查看防火墙的策略 打开防火墙的端口 添加一条防火墙策略 在win7上查看 ...

  8. IDEA2017-破解方法

    @方法一 第一步:下载jar 包 地址:https://github.com/locationbai/registerIDEA_2017.3.2_jar 第二部:将下载好的jar放在idea安装目录下 ...

  9. weechat 常用指令

    添加服务器: /server add freenode irc.freenode.org 设置nick: /set irc.server.freenode.nicks "mynick,myn ...

  10. 解决libc.so.6: version `GLIBC_2.14&#39; not found问题

    1.命令检查系统glibc支持的版本: strings /lib64/libc.so.6 |grep GLIBC_ 如果没有2.14或者其他版本的,需要下载安装 2.下载地址:http://pan.b ...