string和vector
2016-05-27 18:52
1151 查看
一、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<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;
}
对于下标操作符[]的使用有一点非常重要,就是仅能提取确实已存在的元素。试图对不存在的元素进行下标操作是程序设计过程中经常发的错误,有可能会导致程序崩溃。
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<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;
}
对于下标操作符[]的使用有一点非常重要,就是仅能提取确实已存在的元素。试图对不存在的元素进行下标操作是程序设计过程中经常发的错误,有可能会导致程序崩溃。
相关文章推荐
- BZOJ 3143 游走(高斯消元)
- HMM原理介绍 示例 python代码实现
- mysql事物处理
- 配置 mybatis的 log4j.properties
- Java-三大框架
- Activity过滤器
- Cglib学习报错 java.lang.reflect.InvocationTargetException-->null
- Qt之自定义布局管理器(QFlowLayout)
- hibernate一级缓存和二级缓存的区别
- Qt之自定义布局管理器(QFlowLayout)
- 转载 css放大效果实现
- 细谈java中的堆和栈
- Socket原理与编程基础
- cisco模拟单臂路由实现
- C#操作文件及文件夹
- ConcurrentHashMap原理
- Objective C 学习笔记
- Math.Round 之关于 不同的四舍五入
- 5.27 考试修改+总结
- Path Sum