首页 > 编程语言 > 详细

字符串、向量和数组

时间:2021-06-23 20:48:45      阅读:15      评论:0      收藏:0      [点我收藏+]

一.命名空间的using声明

1.std::cin 作用域操作符(::)的含义是编译器应从操作符左侧名字所示的作用域中寻找右侧那个名字,因此。std::cin的意思是要使用命名空间std中的名字cin

二.标准库类型string

1.定义和初始化string对象

初始化string对象的方式

string s1                     //默认初始化,s1是一个空串
string s2(s1)               //s2是s1的副本
string s2 = s1             //等价于s2(s1),s2是s1的副本
string s3("value")         //s3是字面值“value”的副本,除了字面值最后的那个空字符外
string s3 = "value"       //等价于s3("value"),s3是字面值“value”的副本
string s4(n, c)            //把s4初始化为由连续n个字符c组成的串        

使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,不使用等号初始化,则执行直接初始化

2.string对象上的操作

1.操作

os << s            //将s写到输出流os当中,返回os
is >> s            //从is中读取字符串赋给s,字符串以空白分隔,返回is
getline(is, s)     //从is中读取一行赋给s,返回is
s.empty()        //s为空返回true,否则返回false
s.size()            //返回//s中的字符的个数
s[n]                //返回s中第n个字符的引用,位置n从0计起
s1+s2            //返回s1和s2连接后的结果
s1 = s2            //用s2的副本代替s1中原来的字符
s1==s2            //如果s1和s2中所含字符完全一样,则他们相等,大小写敏感
s1 != s2

2.读写string对象

值执行读取操作时,sting对象会自动忽略开头的空白(空格、换行、指标等)并从第一个真正字符开始读起,知道遇到下一个空白

string s;
cin >> s;
cout << s << endl;

3.使用getline读取一整行

while(getline(cin, line)) {
    cout << line << endl;      
}

3.处理string对象中的字符

操作

isalnum(c)        //当c是字母或者数字时为真
isalpha(c)        //当c是字母时为真
iscntrl(c)            //当c为控制字符时为真
isdigit(c)            //当c为数字时为真
isgraph(c)            //当c不是空格但可以打印时为真
islower(c)            //当c小写字母是为真
isprint(c)            //当c是可打印字符时为真
ispunct(c)            //当c是标点符号时为真
isspace(c)            //当c是空白时为真
isupper(c)            //当c是大写字母时为真
isxdigit(c)            //当c是十六进制数字时为真
tolower(c)            //当c是大写字母,输出对应的小写字母
toupper(c)            //当c是小写字母,输出对应的大写字母

1.处理每个字符使用for语句

string s("hello world!!!")
for(auto c : s) {
    cout << c << endl;  
}

2.只处理一部分字符

下标运算符 s[0]

三.标准库类型vector

vector表示对象的集合,所有对象的类型都相同,所以也被称为容器

使用vector必须包含头文件

#include <vector>
using std::vector;

1.定义和初始化vector对象

vector<T> v1        //v1是一个空vector,它潜在的元素是T类型的,执行默认初始化
vector<T> v2(v1)    //v2中包含有v1所有元素的副本
vector<T> v2 = v1    //等价于v2(v1)
vector<T> v3(n, val)    //v3包含了n个重复的元素,每个元素的值都是val
vector<T> v4(n)            //v4包含n个重复地执行了初始化的对象
vector<T> v5{a,b,c...}    //v5包含了初始值个数的元素,每个元素都被赋予了相应的初始值
vector<t> v5={a,b,c..}  //等价于v5{a,b,c...}

1.列表初始化vector对象

vector<string> v1{"a", "an", "ant"};

2.创建指定数量的元素

vector<int> ivec(10, -1)        //10个int类型的元素,每个都被初始化为-1

3.值初始化

vector<int> ivec(10);        //10个元素,每个都初始化为0

4.列表初始值还是元素数量

vector<int> v1(10);      //v1有10个元素,每个值为0  
vector<int > v2{10};    //v2有1个元素,值为10

vector<int> v3(10,1);   //v3有10个元素,每个的值都是1
vector<int> v4{10,1};  //v4有2个元素,值分别为10、1

2.向vector对象中添加元素

使用vector的成员函数push_back函数添加元素,不能使用下标添加

vector<int> v2;
for(int i =0; i != 100; i++) {
    v2.push_back(i);  
}

3.其他vector操作

v.empty()            //v不含任何元素为真
v.size()                //v中元素个数
v[n]                    //v中第n个位置上元素的索引
v = v2                //v2中的元素拷贝到v1中
v1 = {a,b,c...}
v1 == v2
v1 != v2

访问vector对象中元素的方法

vector<int> v1{1,2,3,4,5,6,7,8};
for(auto &i : v1) {
    i != i;  
}
for(auto i: v1) {
    cout << i << endl;  
}

四.迭代器

1.使用迭代器

字符串、向量和数组

原文:https://www.cnblogs.com/rezjl/p/14923978.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!