vector以及array和数组

- //比较数组、vector、array
- #include <iostream>
- #include <vector>
- #include <array>
- #include <iomanip>
- using namespace std;
- int main(void)
- {
- /*1.构造方式
- * vector:有多种构造方式,不需要定义元素个数;除常见的初始化方式外,还可以
- * 通过vector和数组构造新的vector
- * array:定义时必须指定array的大小,可通过array构造新的array,不可使用数组构造
- * 数组:定义时必须指定array的大小,使用{}初始化
- */
- vector<int> myvector = {1,2,3,4,5};
- array<int, 5> myarray = {1,2,3,4,5};
- int myint[5] = { 1, 2, 3, 4, 5 };
- /*2.访问方式
- * 三者均可通过下标运算符[]对元素进行操作,vector和array还可以通过at/front/back进行操作
- */
- cout << setw(10) << "vector" << setw(10) << "array" << setw(10) << "数组" << endl;
- for (int i = 0; i < 5; i++)
- {
- cout << setw(10) << myvector.at(i) << setw(10) << myarray.at(i) << setw(10) << myint[i] << endl;
- }
- /*3.遍历方式
- * vector和array还可以通过正向和反向迭代器对元素进行遍历
- */
- cout << "=============正向迭代器遍历=========="<< endl;
- for (vector<int>::iterator it = myvector.begin(); it != myvector.end();++it)
- {
- cout << *it << endl;
- }
- cout << "=============反向迭代器遍历==========" << endl;
- for (vector<int>::reverse_iterator it = myvector.rbegin(); it != myvector.rend(); ++it)
- {
- cout << *it << endl;
- }
- /*4.增删元素
- * vector可以通过push_back/pop_back/emplace/emplace_back/insert动态增删元素
- * array和数组无法实现动态增删元素
- */
- myvector.push_back(6);
- myvector.emplace_back(7);
- vector<int>::iterator it = myvector.end();
- myvector.insert(it, { 8, 9 });//在尾部插入元素,可通过it改变插入位置,也可以插入多个元素
- myvector.pop_back();
- cout << "=============动态增删元素==========" << endl;
- for (vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it)
- {
- cout << *it << endl;
- }
- return 0;
- }
vector以及array和数组的更多相关文章
- c++ 的vector、array和数组的比较
ref: http://blog.csdn.net/haust_wang/article/details/49848169
- [CareerCup] 17.6 Sort Array 排列数组
17.6 Given an array of integers, write a method to find indices m and n such that if you sorted elem ...
- Vector, ArrayList, Array
JAVA新手在使用JAVA的时候大概都会遇到这个问题: JAVA中的Array, ArrayList, Vector, List, LinkedList有什么样的区别?尤其是Vector, Array ...
- C++ vector 实现二维数组
在STL中Vector这一容器,无论是在封装程度还是内存管理等方面都由于传统C++中的数组.本文主要是关于使用Vector初始化.遍历方面的内容.其他二维的思想也是类似的. 这里简单叙述一下C++ 构 ...
- vector创建2维数组
以前我要建立一个二维数组,总是使用 int N=5, M=6; vector<vector<int> > Matrix(N); for(int i =0; i< Matr ...
- Vector 和 Array 区别
1:array 定义的时候必须定义数组的元素个数;而vector 不需要:且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象, 非const变量以及需要到运行阶段才知道其值的 ...
- C++标准库分析总结(四)——<Vector、Array、Forward_list设计原则>
本节主要总结标准库Vector和Array的设计方法和特性以及相关迭代器内部特征 1.Vector 1.1 Vector 内部实现 Vector是自增长的数组,其实在标准库中没有任何一种容器能原地扩充 ...
- ArrayList、LinkedList、Vector、Array和HashMap、HashTable
就 ArrayList 与 Vector 主要从二方面来说. 一.同步性:Vector 是线程安全的,也就是说是同步的,而ArrayList 是线程序不安全的,不是同步的 二.数据增长:当需要增长时, ...
- Namespace, string, vector and array
1. Headers should not include using declaration Code inside headers ordinarily should not include us ...
随机推荐
- 列表中的index,extend,count方法
列表中的index,extend,count方法 #_author:Administrator#date:2019/10/24#1.index方法l=['blue','red','white','bl ...
- 剑指Offer-13:调整数组位置使奇数位于偶数前面
题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.例如给定一个数组 ...
- vue中axios使用封装
一.在main.js导入 // 引入axios,并加到原型链中 import axios from 'axios'; Vue.prototype.$axios = axios; import QS f ...
- 训练计划Day2
Day2:线段树(可持久化),平衡树(splay,treap),并查集,树链剖分,动态树,树状数组,点分治(可持久). 线段树模板 //区间最大,and,or #include <cstdio& ...
- eclipse+terminal
eclipse 怎么安装terminal插件 1 首先打开eclipse,找到help菜单,点击Eclipse Marketplace. 2 在search框里输入Terminal,点击Go查找. ...
- day17_内置函数_文件处理
20180729 修改部分代码 更新:# # 5.max与列表指定参数 20180728 初次上传 #!/usr/bin/env python # -*- coding:utf-8 -*- ...
- Vue .sync修饰符与$emit(update:xxx)写法问题
在学习vue自定义事件的.sync修饰符实现改变数值时发现一个问题如下由于props的大小写命名:fatherNum,对应不同的$emit()会有不同的效果,具体如下: 使用.sync修饰符,即 // ...
- 最近看了关于java的几条帖子,写的不错,总结了一下
1.最开始写代码,例如C语言(“一次编写,到处编译”)都是经过编译后生成汇编码,直接在cpu上执行. 因为不同的硬件架构和操作系统,会导致不同的cpu支持的指令可能不同,也就是说不通类型的cpu所能执 ...
- ArrayList 和linkedList 插入比较
从学Java开始, 就一直大脑记着 arrayList 底层是数组 ,查询快, 插入慢, 有移动的动作.linkedList 底层链表, 插入快 查询慢,今天写了例子跑了跑, 果然. public ...
- Python Fabric模块详解
Python Fabric模块详解 什么是Fabric? 简单介绍一下: Fabric是一个Python的库和命令行工具,用来提高基于SSH的应用部署和系统管理效率. 再具体点介绍一下,Fabri ...