目录

string

string的常见构造函数

string与char *(或const char*)之间的转换

string 转化为const char*

const char* 转化为string

string 转化为 char*

char* 转化为string

find函数


string

帮助链接:https://www.jianshu.com/p/497843e403b4

string的常见构造函数

//通过const char * 初始化
string s1 = "aaaa"; //构造函数初始化
string s2("bbbbb"); //通过拷贝构造函数来初始化对象s3
string s3 = s2; //用10个'a'字符来初始化字符串
string s4(10, 'a');

string与char *(或const char*)之间的转换

string 转化为const char*

string str("aaaaaaa");
const char *s = str.c_str(); /*str.c_str()返回的应该是const char* 类型*/

const char* 转化为string

    const char *p1 = "123345";
string str1 = p1; /*直接拷贝*/
//或者这样
string str2(p1);

string 转化为 char*

char buf[200] = {0};
str.copy(buf, 3, 0); /*将str中的3个字符拷贝到buf中,0代表末尾的'\0'*/

char* 转化为string

/*与const char*类似,只不过是char*类型的罢了*/

find函数

参考博客:https://blog.csdn.net/wangjingqi930330/article/details/81938998, https://codeday.me/bug/20170329/8164.html

https://blog.csdn.net/sinat_34328764/article/details/79946650

对于vector, list,只能用  find(ar1.begin(), ar1.end(), target)来看是否有target这个元素,这里find返回一个迭代器,也就是指针,对于vector而言,若想得到target对应的下标,则应用它减去ar1.begin();这个主要用于判断是否含有target,若不含有,则返回ar1.end(),因此常用 if(find(ar1.begin(), ar1.end(), "bbb") != ar1.end()) 来判断。

而对于set,multiset而言,还可以用a.find(target),用myset.find(x) != myset.end()来判断是否有这个元素

对于map,multimap而言,可以用a.find(key),返回一个迭代器,若没有这个key值,则返回a.end().其用处除了这个还可以用迭代器直接访问这个key对应的value,代码如下:

map<string, string>::iterator it = p.find(str);    /*查找p的key中是否含有str*/
if(it != p.end())
cout << it->second << endl; /*如果有,则输出它对应的value值*/

STL详细介绍(更新中~~~)的更多相关文章

  1. [转]详细介绍java中的数据结构

    详细介绍java中的数据结构 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类.一起来看本文吧! 也许你已经熟练使用了java.util包里面的各 ...

  2. 详细介绍java中的数据结构

    详细介绍java中的数据结构 http://developer.51cto.com/art/201107/273003.htm 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个 ...

  3. 一文带你详细介绍c++中的std::move函数

    前言 在探讨c++11中的Move函数前,先介绍两个概念(左值和右值) 左值和右值 首先区分左值和右值 左值是表达式结束后依然存在的持久对象(代表一个在内存中占有确定位置的对象) 右值是表达式结束时不 ...

  4. 详细介绍Java中的堆、栈和常量池

    下面主要介绍JAVA中的堆.栈和常量池: 1.寄存器 最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈 存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在 ...

  5. 详细介绍php中的命名空间

    php命名空间的一个最明确的作用是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.上一章节介绍了什么是php命名空间.php官网已很明确的进行了定义并形象化解释,这 ...

  6. 详细介绍Java中的堆和栈

    栈与堆都是Java用来在RAM中寄存数据的中央.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运转时数据区,类的对象从中分配空间.这些对象经过new.newar ...

  7. 详细介绍javascript中的几种for循环的区别

    偶然间见到了forEach循环,感觉很新奇,就研究了一下,顺带着把js中的几种for循环做了一个比较. 首先,简单说一下,js中一共大概有四种for循环:(1).那种简单常见的for循环:(2).fo ...

  8. --转载 详细介绍java中的数据结构

    http://developer.51cto.com/art/201107/273003.htm 也许你已经熟练使用了java.util包里面的各种数据结构,但是我还是要说一说java版数据结构与算法 ...

  9. react-native热更新之CodePush详细介绍及使用方法

    react-native热更新之CodePush详细介绍及使用方法 2018年03月04日 17:03:21 clf_programing 阅读数:7979 标签: react native热更新co ...

随机推荐

  1. 最常见的Java面试题及答案汇总(一)

    Java 基础部分 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java ...

  2. kubernetes 监控方案之:heapster+influxdb+grafana(十八)

    目录 一.Heapster 介绍 二.部署 三.使用 heapster 已经 deprecated 了:https://github.com/kubernetes/heapster,所以下面的演示主要 ...

  3. ABP vNext

    一.简要介绍# ABP vNext 是 ABP 框架作者所发起的新项目,截止目前 (2019 年 8 月 20 日) 已经拥有 1400 多个 Star,最新版本号为 v 0.19.0,可以尝试用于生 ...

  4. 遇到了NameError: name ‘name’ is not defined 这样的错误。

    改正:__name__ == "__main__" name的左右两边各有两条下划线,不是左右两边各有一条

  5. 用python写一个简单的文件上传

    用Pycharm创建一个django项目.目录如下: <!DOCTYPE html> <html lang="en"> <head> <m ...

  6. 19.Python略有小成(面向对象Ⅰ)

    Python(面向对象Ⅰ) 一.面向对象初识 回顾面向过程编程与函数式编程 # 面向过程编程 测量对象的元素个个数. s1 = 'fjdsklafsjda' count = 0 for i in s1 ...

  7. pandas.DataFrame对象解析

    pandas.DataFrame对象类型解析 df = pd.DataFrame([[1,"2",3,4],[5,"6",7,8]],columns=[&quo ...

  8. 计数器的Verilog写法

    计数器是非常基本的使用,没有计数器就无法处理时序.我在学习时发现市面上有几种不同的计数器写法,非常有趣,在此记录下来: 一.时序逻辑和组合逻辑彻底分开(by锆石科技FPGA教程) 1.代码 //=== ...

  9. AS3.0频谱-01

    AS3.0频谱系列-01: package fengzi.spectrum { //import fengzi.colors.GetColor; import flash.display.Sprite ...

  10. SQL注入绕过技巧

    1.绕过空格(注释符/* */,%a0): 两个空格代替一个空格,用Tab代替空格,%a0=空格: % % %0a %0b %0c %0d %a0 %00 /**/ /*!*/ 最基本的绕过方法,用注 ...