字符串和数组----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(','); //字符串转数组 ...
随机推荐
- Mybatis中sql语句中的in查询,判断null和size为0的情况
不严谨的写法,可能会报错:in (),这种情况不符合SQL的语法,导致程序报错. 如果简单只做非空判断,这样也有可能会有问题:本来in一个空列表,应该是没有数据才对,却变成了获取全部数据! 所以一个比 ...
- webbench高并发测试
安装ctags sudo apt-get install ctags 安装webbench 下载webbench http://home.tiscali.cz/~cz210552/distfiles/ ...
- Tp5.1使用导出Excel
composer require phpoffice/phpexcel 不管它的警告,都能用的. use PHPExcel; use PHPExcel_IOFactory; public static ...
- 使用lombok 找不到方法
在setting里面查找并设置就好了
- .NET Core 管道
从用户发请求到服务器响应返回数据 请求从 Request进去 先经过 Middleware(中间件) 然后经过AuthoriationFilters授权验证(token验证和 多租户验证) 在经 ...
- Vue技巧
转载:https://segmentfault.com/a/1190000014085613?utm_source=channel-hottest 对自己有用,做个笔记,有兴趣可以去以上地址去看. 第 ...
- Vim 8.0
安装Vim 8.0yum install ncurses-devel wget https://github.com/vim/vim/archive/master.zip unzip master.z ...
- Navicat for MySQL 查看BLOB字段内容
转载地址:https://blog.csdn.net/lwei_998/article/details/41871329
- 怎么从bam文件中提取出比对OR没比对上的paired reads | bamToFastq | STAR
折腾这么多都是白瞎,STAR就有输出没有别对上的pair-end reads的功能 参见:How To Filter Mapped Reads With Samtools I had the same ...
- NYOJ - 整数划分(四)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=746 要求对一个n的整数插入m个乘号,求最大结果. 构造dp:dp[i][j]表示枚举至j ...