字符串和数组----vector
vector能容纳绝大多数类型的对象作为其元素,但是因为引用不是对象,所以不存在包含引用的vector。
使用vector需要包含头文件vector。
1、初始化vector对象的方法
1)vector<T> v1; // v1是一个空vector,它潜在的元素是T类型的,执行默认初始化。
2)vector<T> v2(v1); // v2中包含有v1所有元素的副本。
3)vector<T> v2 = v1; // 等价于v2(v1)
4)vector<T> v3(n, val); // v3包含了n个重复的元素val
5)vector<T> v4(n); // v4包含了n个重复地执行了值初始化的对象。如果vector对象的元素是元素内置类型,比如int,则元素初始值自动设为0;如果元素是某种类类型,比如string,则元素由类默认初始化。
6)vector<T> v5{a,b,c,...} // v5包含了初始值个数的元素,每个元素被赋予相应的初始值
7)vector<T> v5={a,b,c,...} // 等价于v5{a,b,c,...}
注意:如果用的是花括号,可以表述成我们想列表初始化该vector对象。初始化过程会尽可能地把花括号内的值当成元素初始值的列表来处理,只有在无法执行列表初始化时才会考虑其他初始化方式。
int main()
{
vector<int> v1(); // 10个值为0的元素
vector<int> v2{ }; // 一个值为10的元素
vector<int> v3(, ); // 10个值为1的元素
vector<int> v4{ , }; // 2个元素,分别是10,1
vector<string> v5{ }; // 10个默认初始的元素
vector<string> v6{ , "hello" }; // 10个值为"hello"的元素
return ;
}
允许使用数组来初始化vector对象,需要指明拷贝区域的首元素地址和尾后地址。
int main()
{
int arr[] = { , , , , };
std::vector<int> vec(arr+, arr+); // vec有3个元素,分别是2,3,4
return ;
}
2、常用操作
1)v.empty() 如果v不含有任何元素,返回真;否则返回假。
2)v.size() 返回v中元素的个数。
3)v.push_back(t) 向v的尾端添加一个值为t的元素。
4)v[n] 返回v中第n个位置上元素的引用。
5)v1 = v2 用v2中元素的拷贝替换v1中的元素。
6)v1={a,b,c,...} 用列表中元素的拷贝替换v1中的元素。
7)v1 == v2 v1和v2相等当且仅当它们的元素数量相同且对应位置的元素值都相同。
8)v1 !=v2
9)<,<=,>,>= 以字典序顺序进行比较
注意:vector对象(以及string对象)的下标运算符可用于访问已存在的元素,而不能用于添加元素。
字符串和数组----vector的更多相关文章
- <<C++ Primer>> 第三章 字符串, 向量和数组 术语表
术语表 第 3 章 字符串, 向量和数组 begin: 是 string 和 vector 的成员,返回指向第一个元素的迭代器.也是一个标准库函数,输入一个数字,返回指向该数字首元素的指针. 缓 ...
- C++ STL之动态数组vector(⽮量)的使⽤
写再最前面:摘录于柳神的笔记: 之前C语⾔⾥⾯⽤ int arr[] 定义数组,它的缺点是数组的⻓度不能随⼼所欲的改变,⽽C++⾥⾯有⼀个能完全替代数组的动态数组 vector (有的书⾥⾯把它翻 ...
- sizeof、strlen、字符串、数组,整到一块,你还清楚吗?
写在前面 sizeof.strlen.字符串.数组,提到这些概念,相信学过C语言的人都能耳熟能详,也能谈得头头是道,但是,在实际运用中,当这些内容交织在一起时,大家却不一定能搞地清清楚楚,本文的目的正 ...
- Java中将一个字符串传入数组的几种方法
String Str="abnckdjgdag"; char a[]=new char[Str.length()]; -------------------方法1 用于取出字符串的 ...
- 03- Shell脚本学习--字符串和数组
字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似: 单双引号的区别: 双 ...
- js中字符串和数组相互转化的方法
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #e4af0a } p. ...
- bash中不可以用字符串做数组下标
bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不 ...
- js数字、字符串、数组之间的转化
1.数组转字符串 var a, b; a = ,,,,); b = a.join("-"); 2.字符串转数组 var s = "abc,abcd,aaa"; ...
- C#.NET 字符串转数组,数组转字符串
string str = "1,2,3,4,5,6,7"; string[] strArray = str.Split(','); //字符串转数组 ...
随机推荐
- php 中 public private protected的区别
public 子类,外部都可调用. protected 子类可以调用,外部不可以调用. private 子类不可以调用,外部不可以调用. <?php class AA { public func ...
- format格式化函数
注意:列表索引设置参数,‘0’是必须的.
- fit_transform和transform的区别
来自:泡泡糖nana 来自:俞驰 1. fit_transform是fit和transform的组合. 2. fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法 ...
- MsgWaitForMultipleObjects_测试
1.个人感觉: 1.1.MSDN中(https://msdn.microsoft.com/en-us/library/ms684242.aspx),说: “ dwWakeMask [in] The i ...
- 大数据新手之路四:联合使用Flume和Kafka
Ubuntu16.04+Kafka1.0.0+Flume1.8.0 1.目标 ①使用Flume作为Kafka的Producer: ②使用Kafka作为Flume的Sink: 其实以上两点是同一个事情在 ...
- 不光是查找值! "二分搜索"
2018-11-14 18:14:15 二分搜索法,是通过不断缩小解的可能存在范围,从而求得问题最优解的方法.在程序设计竞赛中,经常会看到二分搜索法和其他算法相结合的题目.接下来,给大家介绍几种经典的 ...
- Java操作Kafka
java操作kafka非常的简单,然后kafka也提供了很多缺省值,一般情况下我们不需要修改太多的参数就能使用.下面我贴出代码. pom.xml <dependency> <grou ...
- Ruby 基础教程 第一部分总结
第一部分:Ruby 初体验 第一章: Ruby 初探 前言 开头的这一章节讲了一些十分基础的内容,重要的几个话题有: ruby 命令的执行方法 对象.方法的概念 常见的打印方法 ruby 命令的执行方 ...
- 如何通过ssh远程登录内网的Mac和Linux系统?
神器:ngrok 用法很简单,安装后 验证授权: ./ngrok authtoken 3WWujp1TEtHRo6rphEi5Y_7MBqGWm9yThCSFyqEHgip 在内网开启tcp服务 ng ...
- drf 认证、权限、限流、过滤、排序、分页器
认证Authentication 准备工作:(需要结合权限用) 1. 需要使用到登陆功能,所以我们使用django内置admin站点并创建一个管理员. python manage.py creates ...