vector

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。

Character

高效

C++标准要求vector在运行时高效快速地添加元素。既然能高效增长,那么定义长度也就没有多大必要了。事实上定义长度反而会降低性能,除非所有元素值一样(那你何不“重复定义初始化”)。一旦值不同,最好的办法还是创建空vector,然后push_back元素。

动态增长的副作用:不能使用范围for循环;可能使迭代器失效。

Initial

如何选择初始化

  • 直接初始化

    • 初始值已知且数量确定
    • 是另一个对象的副本
  • 创建空vector,然后push_back元素

    • 数量不确定

代码演示

vector<string> sv;                   //默认初始化
vector<string> sa(sv); //副本初始化
vector<string> sb = sv; //同上
vector<string> sc(3, "hello"); //重复定义初始化
vector<string> sd = {"a", "b", "c"}; //列表初始化
vector<string> se(10); //值初始化 //()和{}
//()指示值数量,{}指示具体值
vector<int> ia(10); //有10个元素
vector<int> ib{10}; //初始值为10 vector<int> ic(10, 1); //10个1
vector<int> id{10, 1}; //10和1

Function

All the operation

操作 含义
v.empty() 为空?真:假
v.size() (::size_type)元素个数
v.push_back() 尾端插入元素
v[n] return &
v1 = v2 将v2元素拷贝到v1
v1 = {a,b,c} 将列表中的元素拷贝到v1中
v1 == v2 数量相同,元素相同
<,<=,>,>= 以字典序比较

注:v.size()的返回同string一样,需要用dealtype(v.size())定义;v[n]返回的是引用。比较运算符取决于元素的值是否可以比较(自定义类需要重载运算符)。不能用下标添加元素,改值可以。

Pushelem

把一个值压(push)到vector对象的尾端。

如果循环体内部包含有向vector对象中添加元素的语句,就不能使用范围for循环。

string word;
vector<string> text;
while(cin>>word){
text.push_back(word);
}

Printelem

vector<string> text={"hello","world"};
for(decltype(text.size()) i=0;i!=text.size();++i)
{
cout<<text[i];
}
cout<<endl;

C++ 初读vector的更多相关文章

  1. TensorFlow 源代码初读感受

    把自己微博发的文章:http://www.weibo.com/1804230372/En7PdlgLb?from=page_1005051804230372_profile&wvr=6& ...

  2. C++ 初读迭代器

    迭代器 这是个啥? string对象或vector对象可以通过下标访问每一个元素,迭代器也具有同样的效果.那又有什么不同呢?事实上并不是所有的容器到可以使用下标访问每一个元素,即在容器上迭代器更具普适 ...

  3. 初读"Thinking in Java"读书笔记之第五章 --- 初始化与清理

    用构造器确保初始化 构造器可以确保每个对象都会得到初始化,Java毁在创建对象时自动调用构造器. 构造器采用与类名相同的名称,因此并不适合"每个方法首字母小写的风格". 构造器默认 ...

  4. D1——初读《Head First Java》

    今天随便看了点<Head First Java>,发觉这本书的风格真是有趣.打算先把这本书踏踏实实的看了.学习切忌好高骛远.心浮气躁,尤其入门基础阶段更应该踏踏实实地学习知识.下面随便谈谈 ...

  5. JavaScript权威指南(第六版) 初读笔记

    JavaScript的5种原始类型:undefined.null.布尔值.数字和字符串. JavaScript中两个非常重要的数据类型是对象和数组. 通过方括号定义数组元素和通过花括号定义对象属性名和 ...

  6. 201771030106-葛佳诚 实验一 软件工程准备-<初读《构建之法——现代软件工程》有问>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 作业要求链接 https://www.cnblogs.com/nwnu-da ...

  7. [初读笔记] Cloud Migration Research: A Systematic Review (TCC, 2013)

    Pooyan Jamshidi, Aakash Ahmad, Claus Pahl, "Cloud Migration Research: A Systematic Review," ...

  8. xml初读

    形式良好的 XML 文档 “形式良好”或“结构良好”的 XML 文档拥有正确的语法. “形式良好”(Well Formed)的 XML 文档会遵守前几章介绍过的 XML 语法规则: XML 文档必须有 ...

  9. javascript对象初读

    <script type="text/javascript"> function baseClass() { this.showMsg = function() { a ...

随机推荐

  1. hive字段名、注释中文显示问号

    问题如下图: 解决方法: header1的/etc/my.conf文件,在[mysqld]分组下面添加配置:character-set-server=utf8init_connect='SET NAM ...

  2. Python高级笔记(四) -- 多继承_方法解析顺序表MRO

    1. 多继承以及MRO顺序 1.1 单独调用父类的方法 # -*- encoding=utf-8 -*- class Parent(object): def __init__(self, name): ...

  3. 转载-IDEA项目左边栏只能看到文件看不到项目结构

    原文-https://blog.csdn.net/weixin_42362985/article/details/80538064 有时IDEA Maven项目打开左侧Project窗口本应该显示项目 ...

  4. Asp.net Core导出Excel

    本篇文章是在MVC设计模式下,基于windows系统的Excel导出 1.前台的实现不用我多说了吧,加一个a标签链接地址跳到它所调用的方法里面,可以根据当前页面的查询条件去传值,从而查询出你想要的数据 ...

  5. java abs(绝对值) , max(最大值),min(最小值) 方法的应用

    在写程序是,我们常常会计算一个数的绝对值,这时我们可以使用java里的方法来计算 public class Demo1{ public static void main(String [] args) ...

  6. JDK开发环境配置

    1. 新建 -> 变量名“JAVA_HOME”, 变量值“C:\Program Files\Java\jdk1.8.0_112”(即JDK的安装路径) 2. 编辑 -> 变量名“Path” ...

  7. 一个疑问,int对象5为何没有__dict__属性,而类却有,这是怎么做到的?对象不是都可以调用类属性吗?

    a=1 print hasattr(a.__dict__) print hasattr(a.__class__.__dict__)

  8. 【项目】Selenium和pymongo复习

    import pymongo client = pymongo.MongoClient(host='localhost',port=27017) db = client.test collection ...

  9. zip4j实现文件压缩与解压缩 & common-compress压缩与解压缩

    有时候需要批量下载文件,所以需要在后台将多个文件压缩之后进行下载. zip4j可以进行目录压缩与文件压缩,同时可以加密压缩. common-compress只压缩文件,没有找到压缩目录的API. 1. ...

  10. form表单中button按钮返回上一页解决办法

    解决Form中button按钮不好用的问题解决办法. 方法一: 1.在Form表单标签中国增加一个属性,如下图,红框处 2.返回按钮样式 3.onclick方法需要跳转的页面,遮挡处为需要返回的页面 ...