字符串和数组----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(','); //字符串转数组 ...
随机推荐
- [C#]读取不同版本的excel文件的方法
--------------------------------2007及以上的版本-------------------------------- 测试如下: //DataInterface.Met ...
- java重新开始学习
1.从菜鸟网站开始学习.http://www.runoob.com/java/java-tutorial.html 2. String args[] 与 String[] args 还有一个就是Str ...
- legend2---开发日志6(后端和前端如何相互配合(比如php,js,元素状态和数据改变))
legend2---开发日志6(后端和前端如何相互配合(比如php,js,元素状态和数据改变)) 一.总结 一句话总结:php给元素初始状态,js根据这个状态做初始化和后续变化,使用vue真的很方便( ...
- spring cloud: Hystrix(六):feign的注解@FeignClient:fallbackFactory(类似于断容器)与fallback方法
fallbackFactory(类似于断容器)与fallback方法 feign的注解@FeignClient:fallbackFactory与fallback方法不能同时使用,这个两个方法其实都类似 ...
- tchart2
- blast | diamond 输出结果选择和解析 | 比对
之前的文章:构建NCBI本地BLAST数据库 (NR NT等) | blastx/diamond使用方法 | blast构建索引 | makeblastdb 本地运行blast时,需要指定out fo ...
- mac 配置homebrew
1.终端下输入export PATH=/usr/local/bin:$PATH 2.echo $PATH 3.安装homebrew 地址:ruby -e "$(curl -fsSL htt ...
- eclipse指定jdk路径
- MySQL 分支和循环结构
1.if else分支 mysql:用elseif Oracle:用elsif 可以用select直接查看获取的值或者一个变量. create procedure pd_t ...
- Wannafly挑战赛27-A/B
链接:https://www.nowcoder.com/acm/contest/215/A来源:牛客网 题目描述 “White shores, and beyond. A far green coun ...