string和vector
一、String对象
1、string s;
s.size();
//返回的是s中字符的个数,也是s的长度;
//string对象最后没有加空字符
//size()返回的是string::size_type类型,也就是unsigned类型,而不是int类型
2、两个string对象的相加
string标准库中重载了"+"运算符;
string s1("hollo");
string s2("world");
string s3=s1+s2; //ok
但要注意的是,+操作符的左右操作数必须至少有一个是string类型:
string s4="hello"+"world"; //error:no string operand
string s5=s1+", "+"world"; //ok
string s6="hello"+", "+s2; //error
二、标准库vector类型
1、vector对象的定义和初始化
|
几种初始化vector对象的方式 |
|
|
vector<T> v1; |
vector保存类型为T的对象。默认构造函数,v1为空 |
|
vector<T> v2(v1); |
v2为v1的一个副本 |
|
vector<T> v3(n,i); |
V3包含n个值为i的元素 |
|
vector<T> v4(n); |
V4含有值初始化的元素的n个副本 |
vector<int> ivec;
vector<sales_item> Sales_vec;
虽然可以对给定元素的个数的vector对象预先分配内存,但更有效的方法是先初始化一个空的vector对象,然后再动态增加元素。(vector和数组很像,但数组不能动态增加元素,而且值得注意的是vector下标操作不添加元素,在下面的3中讨论)
2、vector对象的size
vector对象的成员函数size返回相应vector类定义的size_tyoe的值,但值得注意的是使用size_type类型时,必须指出该类型是在哪里定义的。vector类型总是包括vector的元素类型:
vector<int>::size_type //ok
vector::sizet_ype //error
3、下标操作不添加元素
#include<iostream>
#include<vector>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main(){
vector<int> ivec; //empty vector
//for(vector<int>::size_type i=0;i!=10;++i)
// ivec[i]=i;
/*试图在ivec中插入10个元素,元素值依次为0-9的整数。但是,这里的ivec是空的vector对象,而且下标只能获取已存在的元素。*/
for(vector<int>::size_type i=0;i!=10;++i)
ivec.push_back(i); //push_back(t) 在末尾增加一个值为t的元素
for(vector<int>::size_type i=0;i!=ivec.size();++i)
cout<<ivec[i]<<" ";
cout<<endl;
return 0;
}
对于下标操作符[]的使用有一点非常重要,就是仅能提取确实已存在的元素。试图对不存在的元素进行下标操作是程序设计过程中经常发的错误,有可能会导致程序崩溃。
string和vector的更多相关文章
- POJ 3096 Surprising Strings(STL map string set vector)
题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 &qu ...
- 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中
#include<iostream> #include<string> #include<vector> #include<fstream> using ...
- std::string,std::vector,std::accumulate注意事项
在用string做字符串拼接时,会发现随着string的增大越来越慢,原因主要是string(和vector)是基于现行内存的数据结构,在海量数据时,经常会申请新的一块内存,把原有的数据拷贝过去然后再 ...
- Q&A:string、vector、iterator、bitset
细节要点 getline(cin,string)与cin>>string 在VS2013中通过输入换行符\n,对getline以及cin的用法进行测试,但是并没有像文中所述遇到换行符停止读 ...
- 谈谈两种标准库类型---string和vector
两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库 ...
- LeetCode 205 Isomorphic Strings(同构的字符串)(string、vector、map)(*)
翻译 给定两个字符串s和t,决定它们是否是同构的. 假设s中的元素被替换能够得到t,那么称这两个字符串是同构的. 在用一个字符串的元素替换还有一个字符串的元素的过程中.所有字符的顺序必须保留. 没有两 ...
- C++进阶 STL(1) 第一天 [容器,算法,迭代器] string容器 vector容器 deque容器
课程大纲 02实现基本原理 容器,算法,迭代器 教室:容器 人:元素 教室对于楼:容器 序列式容器: 容器元素在容器中的位置是由进入容器的时间和地点来决定 序列式容器 关联式容器: 教室中 按年龄排座 ...
- 实战c++中的string系列--std:vector 和std:string相互转换(vector to stringstream)
string.vector 互转 string 转 vector vector vcBuf;string stBuf("Hello DaMao!!!");----- ...
- C++ Split string into vector<string> by space
在C++中,我们有时候需要拆分字符串,比如字符串string str = "dog cat cat dog"想以空格区分拆成四个单词,Java中实在太方便了,直接String[] ...
随机推荐
- 关于ASP.NET页面打印技术的总结【转】
B/S结构导致了Web应用程序中打印的特殊性. • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. • 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印 ...
- UE4 - C++ 射线捕捉
#include "Runtime/Engine/Classes/Kismet/KismetMathLibrary.h" //省略大部分代码 void AMyFPS_Charact ...
- [Java Basics] Collection
除了Java collection class/interface外,方便的有Google guava的utility class: Lists/Sets/Maps/Queues, 用它们可以方便地创 ...
- 为python-sproto添加map支持
上个月太忙了,做完这个修改还没写博客,现在补一下.. 之前使用protobuf做协议打包的时候,经常会有个痛点,没法用具体数据的值作为key来索引数据.比如现在客户端上传了造兵协议,协议大概长这样: ...
- Jenkins Job 自杀 groovy
下面的groovy可以加在post groovy script里面在job跑完的时候自杀(把本Job删掉) suicide_url="http://[USER]:[PASSWORD]@[JE ...
- javascript的document.execCommand(转)
document.execCommand()方法处理html数据时常用语法格式如下: 代码: document.execCommand(sCommand[,交互方式, 动态参数]) 其 中:sComm ...
- 解决IE6下JS动态插入iframe不显示的方法
function myshowBox(titles, urls, objWidth, objHeight, flags) { var _title = titles; var _url ...
- python requests库入门[转]
首先,确认一下: Requests 已安装 Requests是 最新的 让我们从一些简单的示例开始吧. 发送请求 使用Requests发送网络请求非常简单. 一开始要导入Requests模块: > ...
- Python中reactor,factory,protocol
最为简单的情况下,除了了解清reactor的简单使用,你还要了解Protocol和Factory.它们最终都会由reactor的侦听建立和run来统一调度起来. 建立服务器的第一个要解决的问题就是服务 ...
- angular+bootstrap+MVC 之二,模态窗
本例实现一个bootstrap的模态窗 1.HTML代码 <!doctype html> <!--suppress ALL --> <html ng-app=" ...