C++ Vector实践
实践如下:
#include <iostream>
#include <vector>
#include <typeinfo>
using namespace std; int main() {
cout<<"Vector 测试"<<endl; vector<int> v1,v2;
v1.reserve();
v2.reserve(); v1 = vector<int>(,);
int array[] = {,,,,,,,};
v2 = vector<int>(array, array+); cout<<"v1容量:"<<v1.capacity()<<endl;
cout<<"v1当前各项:"<<endl;
for(decltype(v2.size()) i = ; i < v1.size(); i++){
cout<<" 第"<<i<<"项: "<<v1[i]<<endl;
} cout<<"v2容量:"<<v2.capacity()<<endl;
cout<<"v2当前各项:"<<endl;
for(vector<int>::size_type i = ; i < v2.size(); i++){
cout<<" 第"<<i<<"项: "<<v2[i]<<endl;
} cout<<" typeid(size_t).name() = "<<typeid(size_t).name()<<endl;
cout<<" typeid(vector<int>::size_type).name() = "<<typeid(vector<int>::size_type).name()<<endl;
cout<<endl<<endl; v1.resize();
cout<<"v1容量重新初始化为0"<<endl;
if(v1.empty()){
cout<<"v1是空的"<<endl;
cout<<"v1中元素的个数是: "<<v1.size()<<endl;
cout<<"v1容量是: "<<v1.capacity()<<endl;
}
else{
cout<<"v1容量是: "<<v1.size()<<endl;
} v1.resize();
cout<<"v1容量重新初始化为10"<<endl;
cout<<"v1中元素的个数是: "<<v1.size()<<endl;
cout<<"v1容量是: "<<v1.capacity()<<endl;
cout<<"v1当前各项:"<<endl;
for(unsigned int i = ; i < v1.size(); i++){
cout<<" 第"<<i<<"项: "<<v1[i]<<endl;
}
cout<<endl<<endl; v1.swap(v2);
cout<<"v1与v2进行了swap操作"<<endl;
cout<<"v1中元素的个数是: "<<v1.size()<<endl;
cout<<"v1容量是: "<<v1.capacity()<<endl;
cout<<"v1当前各项:"<<endl;
for(unsigned int i = ; i < v1.size(); i++){
cout<<" 第"<<i<<"项: "<<v1[i]<<endl;
}
cout<<endl<<endl; v1.push_back();
cout<<"v1.push_back(22222)操作"<<endl;
cout<<"v1中元素的个数是: "<<v1.size()<<endl;
cout<<"v1容量是: "<<v1.capacity()<<endl;
cout<<"v1当前各项:"<<endl;
for(unsigned int i = ; i < v1.size(); i++){
cout<<" 第"<<i<<"项: "<<v1[i]<<endl;
}
cout<<endl<<endl; v1.erase(v1.end()-);
cout<<"v1.push_back(22222)操作"<<endl;
cout<<"v1中元素的个数是: "<<v1.size()<<endl;
cout<<"v1容量是: "<<v1.capacity()<<endl;
cout<<"v1当前各项:"<<endl;
for(unsigned int i = ; i < v1.size(); i++){
cout<<" 第"<<i<<"项: "<<v1[i]<<endl;
}
cout<<endl<<endl; v1.pop_back();
cout<<"v1.pop_back()操作"<<endl;
cout<<"v1中元素的个数是: "<<v1.size()<<endl;
cout<<"v1容量是: "<<v1.capacity()<<endl;
cout<<"v1当前各项:"<<endl;
for(unsigned int i = ; i < v1.size(); i++){
cout<<" 第"<<i<<"项: "<<v1[i]<<endl;
}
cout<<endl<<endl; cout << "测试结束" << endl;
return ;
}
输出:
Vector 测试
v1容量:
v1当前各项:
第0项:
第1项:
第2项:
第3项:
第4项:
第5项:
第6项:
第7项:
v2容量:
v2当前各项:
第0项:
第1项:
第2项:
第3项:
第4项:
第5项:
第6项:
第7项:
typeid(size_t).name() = j
typeid(vector<int>::size_type).name() = j v1容量重新初始化为0
v1是空的
v1中元素的个数是:
v1容量是:
v1容量重新初始化为10
v1中元素的个数是:
v1容量是:
v1当前各项:
第0项:
第1项:
第2项:
第3项:
第4项:
第5项:
第6项:
第7项:
第8项:
第9项: v1与v2进行了swap操作
v1中元素的个数是:
v1容量是:
v1当前各项:
第0项:
第1项:
第2项:
第3项:
第4项:
第5项:
第6项:
第7项: v1.push_back()操作
v1中元素的个数是:
v1容量是:
v1当前各项:
第0项:
第1项:
第2项:
第3项:
第4项:
第5项:
第6项:
第7项:
第8项: v1.push_back()操作
v1中元素的个数是:
v1容量是:
v1当前各项:
第0项:
第1项:
第2项:
第3项:
第4项:
第5项:
第6项:
第7项: v1.pop_back()操作
v1中元素的个数是:
v1容量是:
v1当前各项:
第0项:
第1项:
第2项:
第3项:
第4项:
第5项:
第6项: 测试结束
C++ Vector实践的更多相关文章
- C++实践积累
C++ STL vector 如何彻底清空一个vector? 实践证明,vector.clear()并不能把vector容量清空,只会让vector.size()变为零,依然很占内存.那如何让vect ...
- 关于QImage提取单色通道方法(vector)
转载请标明处: 作者:微微苏荷 本文地址:关于QImage提取单色通道方法(vector) 近日,用QT和mxnet结合做一个图像识别的demo.遇到需要把图片从QImage转为vector单色分离的 ...
- [软件架构]模块化编程思想及(C++)实践
Repost 内容简介: 模块化思想 模块的构成 模块的管理 模块化实践 定义模块结构 声明模块对象 定义模块列表 模块列表对象 模块化思想 1. 将系统分成很多的模块,模块内部关注自身需要实 ...
- Surface Normal Vector in OpenCascade
Surface Normal Vector in OpenCascade eryar@163.com 摘要Abstract:表面上某一点的法向量(Normal Vector)指的是在该点处与表面垂直的 ...
- 向量时钟Vector Clock in Riak
Riak 是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用.Riak支持多节点构建的系统,每次读写请求不需 ...
- 编程实践中C语言的一些常见细节
对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...
- 《C++编程规范:101条规则、准则与最佳实践》学习笔记
转载:http://dsqiu.iteye.com/blog/1688217 组织和策略问题 0. 不要为小事斤斤计较.(或者说是:知道什么东西不需要标准化) 无需在多个项目或者整个公司范围内强制实施 ...
- java三篇博客转载 详解-vector,stack,queue,deque
博客一:转载自http://shmilyaw-hotmail-com.iteye.com/blog/1825171 java stack的详细实现分析 简介 我们最常用的数据结构之一大概就是stack ...
- cocos基础教程(5)数据结构介绍之cocos2d::Vector
cocos2d::Vector cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容器.cocos2d::Vector<T>中的元素是按序存取的,它的低层实 ...
随机推荐
- ueditor 后端配置项没有正常加载,上传插件不能正常使用 UTF8 PHP
修改config.json 文件,用DW软件打开,修改好后,保存 若用记事本打开的话修改后保存,无法加载
- Delphi Button组件
- ansible常用模块详解(三)
1.模块介绍 明确一点:模块的执行就类似是linux命令的一条命令,就单单的是为了执行一条语句,不是批量的操作,批量操作需要用到playbook内类似shell编写脚本进行批量. 1.1 模块的使用方 ...
- Linux内核链表深度分析
链表简介:链表是一种常用的数据结构,它通过指针将一系列数据节点连接成一条数据链.相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入 ...
- 【转】Java对象初始化详解
来源:MySun 链接:http://mysun.iteye.com/blog/1596959 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.本文试图对Jav ...
- kotlin高阶函数实战&DSL入门
传统函数演示: 这里以电视节目“非诚勿扰”为例,男人去从一大堆美女当中挑选出自己中意的对象,比如台上有24位妹子,其档案如下: 接下来第一个男嘉宾出场啦,如下: 下面用代码来实现一下,比较简单: 先定 ...
- 【AGC006 C】Rabbit Exercise
题意 有 \(n\) 只兔子在数轴上,第 \(i\) 只兔子的初始坐标为整数 \(x_i\). 现在这些兔子会按照下面的规则做体操.每一轮体操都由 \(m\) 次跳跃组成:在第 \(j\) 次跳跃时, ...
- STL源码阅读-functor与adapter
为什么要用仿函数 函数指针不灵活,难以与STL其他组件配合使用 Adapter 将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes,可以一起运作 STL中 ...
- python和CSV
lines=[]; 表头数据 lines.append(list(retlist[0].keys())) 明细数据 for city in city_list: { lines.append(list ...
- 将TextEdit设置为密码框
属性--Properties--UseSystemPasswordChar设置为true