c++ 常见问题之 vector 和数组
初始化vector 对象:
vector<T> v1 v1 为空vector
vector<T> v2(v1)
vector<T> v2 = v1
vector<T> v3(n,val)
vector<T> v4(n)
vector<T> v5 {a,b,c..}
vector<T> v5 = {a,b,c..}
vector<int> s(10,2) //10个元素每个元素是2
vector<int> s{10,2}//2个元素 10和2
vector操作:
v.empty()
v.size()
v.push_back()
v[n]
v1 == v2
v1 = {a,b,c}
迭代器操作:
vector<int> r = {1,2,3,4,5,6};
vector<int>::iterator it;
for(it = r.begin();it!= r.end();it++)
cout << *it << endl;
数组:
数组a[d] d必须是常量表达式 unsigned cnt = 42; int a[cnt] //错误 string strs[get_size()] //错误,当get_size是 constexpr时正确
char a3[] = "c++"; a3的长度为4 还有空字符‘\0’
数组不允许将数组内容拷贝给其他数组作为初始值,也不能用数组为其他数组赋值
int a[] = {1,2,3};
int a2[] = a;//错误
a2 = a; //错误
int len = sizeof(a)/sizeof(a[0]);
复杂数组:默认情况类型修饰从右往左
int *ptr [10]; // ptr是含有10个int*的数组
int &refs[10]; // 错误 不存在引用数组
int (*parray)[10] = &arr; // parray 是个指针,指向大小为10的数组,数组中的类型为int
int (&arrtest)[10] = arr; //arrtest 是个引用,引用类型为大小为10的数组,数组中的类型为int
递增
int j = 0,i;
i = ++j; // i=1,j=1
i = j++; // i=1,j=2
c++ 常见问题之 vector 和数组的更多相关文章
- [转]STL中vector转数组(实际是数组的指针)
感谢:http://topic.csdn.net/t/20050429/20/3976956.html 感谢:http://yzyanchao.blogbus.com/logs/47796444.ht ...
- vector 和数组 之间的转化
1.数组转vector float arrHeight[] = { 1.68,1.72,1.83,2.05,2.35,1.78,2.1,1.96 }; vector<float> vec ...
- vector转数组
vector转数组 由于vector内部的数据是存放在连续的存储空间,vector转数组事实上只需要获取vector中第一个数据的地址和数据的长度即可.如果仅仅是传参,无需任何操作,直接传地址即可,如 ...
- vector代替数组
vector代替数组 1.声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除). 2.用vector ...
- vector和数组
对于之前没有接触过vector的初学者来说,经常会把vector和数组弄混,因为二者在用的时候比较像,下面就详细的来介绍一下vector和数组的区别. (1) 首先,vector类似于数组,有一段连续 ...
- C++ Vector 动态数组
Vectors 包含着一系列连续存储的元素,其行为和数组类似.访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线 ...
- C++中的快速排序(使用vector和数组的不同)
1.快速排序是最最基本的排序算法之一,时间复杂度是O(nlog2(n)) 基本思想:分治法+递归 假设key为该序列的第一个元素,从后往前遍历,找到第一个小于key值的元素,将该元素赋值给左边的起始值 ...
- vector动态数组
vector是STL模板库中的序列式容器,利用它可以有效地避免空间的浪费. 创建vector容器 vector< int >v:vector< char >:vector< ...
- C++ vector动态数组
#include<vector>头文件 vector类称作向量类 百度百科的解释:https://baike.baidu.com/item/vector/3330482 我喜欢把知识点拿出 ...
随机推荐
- Linux内核策略介绍
Linux内核策略介绍学习笔记 主要内容 硬件 策略 CPU 进程调度.系统调用.中断 内存 内存管理 外存 文件IO 网络 协议栈 其他 时间管理 进程调度 内核的运行时间 系统启动.中断发 ...
- asp.net mvc放在iis7.5中提示404错误 js异步请求失效解决办法
asp.net mvc中js发请求一般写成: $.get("/Can/index"本地上是没有问题的但是部署到iis上,提示404,正确的请求的路径是:/网站名/Can/index ...
- UML基础概念
UML概述 uml简介 uml(unified Modeling Language )为面向对象软件设计提供统一的.标准的.可视化的建模语言.适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程 ...
- IIS配置PHP环境
IIS配置PHP环境(快速最新版)(转载+自创) (参考转载的) 我们知道php配置有几种: 1.CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少. ...
- ARM备忘
mov: move sub: subtract cmp: compare cmpls: ls--->lower or same, le--->less or equal, hi---> ...
- Asycn/Await 异步编程初窥
经过两天密集型的学习,翻阅了大量 webpages ,点击了不少重点 blogs,总算基本了解了一些 async/await 搭配使用的入门技巧,总结一下 1. async/await 应该只是语法上 ...
- 简单的mvc之二:蜿蜒的管线
关于系列的第二篇,在管线与路由之间犹豫了很久,最终选择了管线—为免于盲人摸象的困惑. 管线的位置在哪里呢?webform,mvc以及web api都架构于asp.net平台上,管线则是asp.net的 ...
- 启动tomcat报host-manager does not exist or is not a readable directory异常
新安装了一个tomcat6,安装完之后在webapps下面会有一些tomcat自带的项目(ROOT.manager.host-manager...) 把这些没用的项目删掉之后,启动tomcat 报如下 ...
- jquery.post用法补充(type设置问题)
jquery.post用法 http://blog.csdn.net/itmyhome1990/article/details/12578275 当使用ajax获取data数据的时候,直接data.f ...
- java实现验证码
第一步:在web.xml中配置servlet <servlet> <servlet-name>ImageServlet</servlet-name> <ser ...