字符串和数组----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(','); //字符串转数组 ...
随机推荐
- sqlserver 中通配符%和_的使用
--以a开头的数据 SELECT * FROM BCUSTOMER_MZN WHERE CST_NAME LIKE 'A%' --以Z结尾的数据 SELECT * FROM BCUSTOMER_MZN ...
- C#双缓冲代码
private void Form1_Load(object sender, EventArgs e) { //在窗体加载的时候 解决窗体闪烁问题 //将图像绘制到缓冲区减少闪烁 this.SetSt ...
- Mysql简单入门
这两天比较懒,没有学习,这个是我问一个学java的小伙伴要的sql的总结资料,大体语句全在上面了,复制到博客上,以后忘记可以查看 #1命令行连接MySQLmsyql -u root -proot;#2 ...
- String,StringBuilder区别,一个是常量,一个是可变量
String str="这就是爱的呼唤,这就是爱的奉献!!"; //这个str是不可变的字符串序列,要变会生成新的字符串,原字符串不变,是常量 StringBuilder sBui ...
- maven项目, 单元测试失败提示 Class not found datastorage........
---恢复内容开始--- 单元测试失败: 提示 Class not found datastorage........ 原因: maven 环境变量问题, eclipse 没有自动更新下载 ...
- npm升级package.json依赖包到最新版本号
转载自:https://blog.csdn.net/syaivin/article/details/79388244?utm_source=blogxgwz1 1.安装: npm install -g ...
- ICO分享
- C#定义只能处理枚举类型的泛型类型
internal sealed class GenericTypeThatRequireAnEnum<T> { ; //该 static 字段在不同的封闭类型之间是独立不共享的 //静态构 ...
- Asp.net core 学习笔记 ( ef core )
更新 : 2018-11-26 这里记入一下关于 foreignKey cascade action 默认情况下如果我们使用 data annotation required + foreginkey ...
- C#模拟HTTP请求并发送二进制
public static String Submit(String methodName) { string postData = "this is post data";//请 ...