`
javatoyou
  • 浏览: 1008477 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

标准C++库string及STL相关函数

 
阅读更多
一.标准C++库字符串类std::string的用法
#include<string>
std::string s1;
std::string s3(s2);
std::string s2("this is a string");
begin 得到指向字符串开头的Iterator
end 得到指向字符串结尾的Iterator
rbegin 得到指向反向字符串开头的Iterator
rend 得到指向反向字符串结尾的Iterator
size 得到字符串的大小
length() 和size函数功能相同
max_size 字符串可能的最大大小
capacity 在不重新分配内存的情况下,字符串可能的大小
empty 判断是否为空
operator[] 取第几个元素,相当于数组
c_str 取得C风格的const char* 字符串
data 取得字符串内容地址
operator= 赋值操作符
reserve 预留空间
swap 交换函数
insert 插入字符
append 追加字符
push_back 追加字符
erase 删除字符串
clear 清空字符容器中所有内容
resize 重新分配空间
assign 和赋值操作符一样
replace 替代
copy 字符串到空间
find 查找,返回基于0的索引号
rfind 反向查找
find_first_of 查找包含子串中的任何字符,返回第一个位置
find_first_not_of 查找不包含子串中的任何字符,返回第一个位置
find_last_of 查找包含子串中的任何字符,返回最后一个位置
find_last_not_of 查找不包含子串中的任何字符,返回最后一个位置
substr(n1,len) 得到字符串从n1开始的长度为len的子串
比较字符串(支持所有的关系运算符)
compare 比较字符串
operator+ 字符串链接
operator+= += 操作符
operator== 判断是否相等
operator!= 判断是否不等于
operator< 判断是否小于
operator>> 从输入流中读入字符串
operator<< 字符串写入输出流
getline 从输入流中读入一行
二.向量类模板std::vector成员函数:
#include<vector>
std::vector<type> name;
std::vector<type> name(size);
std::vector<type> name(size,value);
std::vector<type> name(myvector);
std::vector<type> name(first,last);
assign(first,last) 用迭代器first,last所指定的元素取代向量元素
assign(num,val) valnum份副本取代向量元素
at(n) 等价于[]运算符返回向量中位置n的元素
front() 返回向量中第一个元素的引用
back() 返回向量中最后一个元素的引用
begin() 返回向量中第一个元素的迭代器
end() 返回向量中最后一个元素的迭代器
max_size() 返回向量的最大容量向量所能容纳的最多元素个数
capacity() 返回向量当前所能容纳的最多元素个数
clear() 删除向量中所有元素
empty() 如果向量为空返回真
erase(start,end) 删除迭代器start end所指定范围内的元素
erase(i) 删除迭代器i所指向的元素
insert(i,x) x插入到迭代器i所指定的位置
insert(i,n,x) xn份副本插入到迭代器i所指定的位置
insert(i,start,end) 把迭代器startend所指定的范围内的值插入到迭代器i所指定的位置
push_back(x) x插入到向量的尾部
pop_back() 删除向量中最后一个元素
rbegin() 返回一个反向迭代器该迭代器指向的元素越过了向量中的最后一个元素
rend() 返回一个反向迭代器该迭代器指向向量中第一个元素
reverse() 反转元素顺序
resize(n,x) 把向量的大小改为n,新元素的初值赋为x
size() 返回向量的大小
swap(vectorref) 交换2个向量的内容
三.双端队列类模板std::deque成员函数
#include<deque>
std::deque<type> name;
std::deque<type> name(size);
std::deque<type> name(size,value);
std::deque<type> name(mydeque);
std::deque<type> name(first,last);
其成员函数大部分和std::vector相同
PS:
push_front(x)x放到双向队列的头部
pop_front() 把双向队列的第一个元素删除
四.链表类模板std::list成员函数
#include<list>
std::list<type> name;
std::list<type> name(size);
std::list<type> name(size,value);
std::list<type> name(mylist);
std::list<type> name(first,last);
其成员函数大部分和std::vector相同
PS:
push_front(x)x放到链表头部
pop_front() 把链表第一个元素删除
merge(listref) listref所引用的链表中的所有元素插入到链表中
remove(val) 从链表中删除所有值为val的元素
remove_if(pred) 删除链表中谓词pred为真的元素
(谓词即为元素存储和检索的描述,如std::less<>,std::greater<>那么就按降序/升序排列,你也可以定义自己的谓词)
sort() 根据默认的谓词对链表排序
sort(pred) 根据给定的谓词对链表排序
unique() 删除所有重复的元素使链表中没有重复元素
unique(pred) 根据谓词pred删除所有重复的元素使链表中没有重复元素
五.容器适配器堆栈类std::stack成员函数:
#include<stack>
stack实现先进后出的操作
std::stack<type,container> name;
type为堆栈操作的数据类型
container为实现堆栈所用的容器类型,可以为std::vector,std::deque,std::list
例如
std::stack<int,std::list<int>> IntStack;
管理成员函数只有:empty(),size(),top(),push(),pop()
六.容器适配器队列类std::queue成员函数:
#include<queue>
queue实现先进先出的操作
std::queue<type,container> name;
type为队列操作的数据类型
container为实现队列所用的容器类型,可以为std::vector,std::deque,std::list
管理成员函数只有:empty(),size(),front(),back(),push(),pop()
关联式容器
集合类std::set,
多重集合类std::multiset,
映射类std::map,
多重映射类std::multimap,
位集合std::bitset
八.通用算法(对以上STL均适用)
#include<algorithm>
1.非修正序列算法:
2.修正序列算法:
3.排序算法:
4.数值算法:
九.迭代器(类似指针的功能,对容器的内容进行访问)
#include<iterator>
例如:
std::vector<int> IntVector;
std::vector<int>::iterator first=IntVector.begin();
//first指向向量第一个元素,*first即为第一个元素的值
std::vector<int>::iterator last=IntVector.end();
//end指向向量最后一个元素,*end即为最后一个元素的值
分享到:
评论

相关推荐

    stl string常用函数

    很全的STL string类的函数方法,便于查询

    C++标准模板库STL初步(1)

    组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的几个头文件:&lt;string&gt;、、、、、、、、、、、、和。文件中主要介绍了前面八个的使用,并且重点介绍了他们的属性和一些成员函数的使用。

    C++标准模板库STL初步(2)

    组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的几个头文件:&lt;string&gt;、、、、、、、、、、、、和。文件中主要介绍了前面八个的使用,并且重点介绍了他们的属性和一些成员函数的使用。

    c++ stl之string常用函数

    包含常用stl string的常用函数

    C++ STL string常用函数

    介绍 string类的常用函数,讲解细致,透彻,非常实用

    c / c++ / cpp / stl 中文帮助文档手册chm格式下载

    c / c++ / cpp / stl 中文帮助文档手册chm格式下载 C/C++ 语言参考 基本C/C++ 预处理命令 操作符优先级 转义字符 ASCII码表 基本数据类型 关键字 标准 C 库: Standard C I/O Standard C String...

    C++标准程序库STL的架构

    5 STL标准程序库 16 5.1 STL组件 16 5.1.1 分类 16 5.1.2 基本观念 16 5.1.3 好处 16 5.2 容器(containers) 16 5.2.1 分类 16 5.2.2 序列式容器示例 16 5.2.3 关联式容器 18 5.3 迭代器 18 5.3.1 示例 19 5.3.2 ...

    C++实现string存取二进制数据的方法

    主要介绍了C++实现string存取二进制数据的方法,针对STL中string的用法进行了较为详细的分析,需要的朋友可以参考下

    C++ STL string类 字符串处理函数 第二版

    在第一版的基础上做了改进,规范了编码和命名以及注释。添加了一些函数

    C++ STL www.cppreference.com 描述了标准C++函数库

    C++ String Streams Miscellaneous C++ C++ Standard Template Library C++ Algorithms C++ Vectors C++ Double-Ended Queues C++ Lists C++ Priority Queues C++ Queues C++ Stacks C++ Sets C++ ...

    C/C++函数手册-中文版和英文版

    C++ 标准模板库 C++ Bitsets C++ Double-Ended Queues C++ Lists C++ Maps C++ Multimaps C++ Multisets C++ Priority Queues C++ Queues C++ Sets C++ Stacks C++ Vectors Iterators 全部的 C 函数 ...

    标准库STL_第1节_顺序容器

    详细介绍标准库STL中的容器:vector、list、forward_list、deque、string、array,讲解常用函数,并举例说明常见的用法和原理。

    STL入门快速入门教程-----学习C++

    C++标准函数库中80%是STL,其中广泛使用了泛性编程思想,在其中分为几大部分。 1:语言支持部分。 2:诊断部分。包含了异常处理,断言,错误代码三大方式。 3:通用工具部分。包括动态内存管理工具,日期/时间处理...

    C++ STL 开发技术导引(第6章)

    第4章 C++ STL泛型库概述 48 4.1 C++ STL的发展历程 48 4.2 C++ STL的各种实现版本 49 4.2.1 HP STL 49 4.2.2 SGI STL 50 4.2.3 STLport 50 4.2.4 P.J.Plauger STL 50 4.2.5 Rouge Wave STL 50 4.3...

    C++ 大学自学教程 C++ 大学教程 第7版 2

    27,标准C++库 28,格式化IOStream和stringstream类 29,文件I/O流 第四部分 标准模板库 30,STL简介 31,STL序列容器 32,结合容器 33,通用算法 34,迭代器 第五部分 高级问题 35,异常处理 36,名字空间 37,C++...

    c++大学自学教程 c++大学教程 第七版1

    27,标准C++库 28,格式化IOStream和stringstream类 29,文件I/O流 第四部分 标准模板库 30,STL简介 31,STL序列容器 32,结合容器 33,通用算法 34,迭代器 第五部分 高级问题 35,异常处理 36,名字空间 37,C++...

    c++大学自学教程 c++大学教程 第七版 4

    27,标准C++库 28,格式化IOStream和stringstream类 29,文件I/O流 第四部分 标准模板库 30,STL简介 31,STL序列容器 32,结合容器 33,通用算法 34,迭代器 第五部分 高级问题 35,异常处理 36,名字空间 37,C++...

    STL知识点思维导图

    组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的几个头文件:&lt;string&gt;、、、、、、、、、、、、和。文件中主要介绍了前面八个的使用,并且重点介绍了他们的属性和一些成员函数的使用。

    C++ STL开发技术导引(第5章)

    第4章 C++ STL泛型库概述 48 4.1 C++ STL的发展历程 48 4.2 C++ STL的各种实现版本 49 4.2.1 HP STL 49 4.2.2 SGI STL 50 4.2.3 STLport 50 4.2.4 P.J.Plauger STL 50 4.2.5 Rouge Wave STL 50 4.3...

Global site tag (gtag.js) - Google Analytics