下面随笔讲解c++ vector对象。

vector对象

  为什么需要vector?

  • 封装任何类型的动态数组,自动创建和删除。

  • 数组下标越界检查。

  • 封装的如ArrayOfPoints也提供了类似功能,但只适用于一种类型的数组。

  vector对象的定义

  • vector<元素类型> 数组对象名(数组长度);

  • 例:

    vector<int> arr(5)
    建立大小为5的int数组

  vector对象的使用

  • 对数组元素的引用

    • 与普通数组具有相同形式:

  vector对象名 [ 下标表达式 ]

  • vector数组对象名不表示数组首地址

    • 获得数组长度

    • 用size函数

      数组对象名.size()

 1 //例 vector应用举例
2
3 #include <iostream>
4
5 #include <vector>
6
7 using namespace std;
8
9 //计算数组arr中元素的平均值
10
11 double average(const vector<double> &arr)
12
13 {
14
15   double sum = 0;
16
17   for (unsigned i = 0; i<arr.size(); i++)
18
19   sum += arr[i];
20
21   return sum / arr.size();
22
23 }
24
25 int main() {
26
27   unsigned n;
28
29   cout << "n = ";
30
31   cin >> n;
32
33   vector<double> arr(n); //创建数组对象
34
35   cout << "Please input " << n << " real numbers:" << endl;
36
37   for (unsigned i = 0; i < n; i++)
38
39     cin >> arr[i];
40
41   cout << "Average = " << average(arr) << endl;
42
43   return 0;
44
45 }
 1 //基于范围的for循环配合auto举例
2
3 #include <vector>
4
5 #include <iostream>
6
7 int main()
8
9 {
10
11   std::vector<int> v = {1,2,3};
12
13   for(auto i = v.begin(); i != v.end(); ++i)
14
15     std::cout << *i << std::endl;
16
17   for(auto e : v)
18
19     std::cout << e << std::endl;
20
21 }

c++ vector对象的更多相关文章

  1. C++的vector对象

    C++的vector使用 标签(空格分隔): C++ 标准库类型vector表示对象的集合,其中所有对象的类型都相同.集合中的每个对象都有一个与之对应的索引,索引用于访问对象,因为vector容纳着其 ...

  2. 用vector容器代替数组 ——使用数组初始化vector对象

    在C++中,我们不能用数组直接初始化另一数组,而只能创建新的数组,然后显式的把原数组的元素逐个复制给新的数组. 按照C语言中的做法: const size_t arry_size=6; int int ...

  3. 整型数组与vector对象之间的相互初始化

    #include<iostream> #include<vector> #include<string> using namespace std; int main ...

  4. 容器大小的改变以及容器操作可能使迭代器失效、vector对象的容量变化

    1 改变容器的大小 我们可以使用resize来增加或缩小容器,与往常一样,array不支持resize.如果当前大小大于所要求的大小,容器后面的元素会被删除:如果当前大小小于新大小,会将新元素添加到容 ...

  5. vector 对象中存放指针类型数据

    <<C++ Primer>> 第四版Exercise Section 5.6 的5.1.6 有一道题是这样的:编写程序定义一个vector对象,其每个元素都是指向string类 ...

  6. 002.比较vector对象是否相等

    1.使用vector模板 //编写一段程序,比较vector对象是否相等 //注:该例类似于一个[彩票游戏] #include <iostream> #include <ctime& ...

  7. vector对象

    vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型,例如vector<int> 定义和初始化vector对象: vector<T> v1    ...

  8. 给vector对象添加元素的方法

    #include<iostream> #include<vector> using namespace std; int main() { //初始化10个元素,每个值都为0 ...

  9. DLL中传递STL参数,vector对象作为dll参数传递等问题(转)

    STL跨平台调用会出现很多异常,你可以试试. STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下 ...

随机推荐

  1. 2020年10月ICPC & 天梯赛 选拔赛【ACFJ】

    A. 表达式 题意 题解 将所有数字替换为A,运算符替换为O,然后不断合并(AOA),判断表达式最后是否为A即可. 注意将数字替换时判断有无前导零. 代码 #include <bits/stdc ...

  2. 2017-2018 ACM-ICPC Latin American Regional Programming Contest PART (11/13)

    $$2017-2018\ ACM-ICPC\ Latin\ American\ Regional\ Programming\ Contest$$ \(A.Arranging\ tiles\) \(B. ...

  3. P3376 【模板】网络最大流——————Q - Marriage Match IV(最短路&最大流)

    第一道题是模板题,下面主要是两种模板,但都用的是Dinic算法(第二个题也是) 第一题: 题意就不需要讲了,直接上代码: vector代码: 1 //invalid types 'int[int]' ...

  4. MySQL 事务特征 & 隔离级别

    数据库事务特征 Atomicity 原子性 事务是一个原子性质的操作单元,事务里面的对数据库的操作要么都执行,要么都不执行, Consistent 一致性 在事务开始之前和完成之后,数据都必须保持一致 ...

  5. VXLAN学习之路-结合VRF在Linux中实践VXLAN网络

    一.概述 近期在在搞网络安全HCIE.CISP的认证的事,顺便将VXLAN技术再次系统的学习一下,学习过程中看到云原生实验室里的一篇文章,就是关于VXLAN在Linux系统中的实践,感觉文章写得很好, ...

  6. Vue Login Form Component

    Vue Login Form Component Account Login <template> <div> <slot></slot> <el ...

  7. vue-cli & plugin:vue/strongly-recommended bug

    vue-cli & plugin:vue/strongly-recommended bug ESLint plugin:vue/strongly-recommended module.expo ...

  8. 【Python核心编程笔记】一、Python中一切皆对象

    Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...

  9. HQYJ嵌入式学习笔记——C语言复习day2

    1.计算机的数值表示 数值类型和非数值类型 二进制 0,1 (0b1001) 八进制 0~7   (0146) 十进制 0~9 十六进制 0~f (0x3f) 八进制转二进制-->一位八进制数换 ...

  10. 五分钟快速上手MyBatis

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射. 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作. 可以通过简单的 XML 或注解来配置和映射,Ja ...