目录

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. Spring boot后台搭建二集成Shiro权限控制

    上一篇文章,实现了用户验证 查看,接下来实现下权限控制 权限控制,是管理资源访问的过程,用于对用户进行的操作授权,证明该用户是否允许进行当前操作,如访问某个链接,某个资源文件等 Apache Shir ...

  2. 使用Delphi开发linux应用

    对于很多喜欢使用delphi做开发的人都希望delphi能够支持linux平台的开发,终于在delphi10.2版本中,delphi开始支持linux平台的开发了.在这里写一下Linux开发环境的配置 ...

  3. PHP字符串替换

    $pid = str_replace(',',',',$pid); $pid = str_replace(' ','',$pid); $pid = str_replace(array(',', ' ' ...

  4. PHP设计模式 - 模板方法模式

    模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.先制定一个顶级 ...

  5. 【C++札记】函数重载

    概述 函数重载指在相同作用域中多个函数名相同,函数的形参不同. 遵循规则: 1.函数名相同 2.函数的参数,类型,个数或顺序不一样都可以构成重载. 3.函数返回值得类型不同不构成重载,编译直接报错,存 ...

  6. CI中如何配置BootStrap

  7. [CF436D]Pudding Monsters

    题目大意:有一个长度为$2\times 10^5$的板,有$n(n\leqslant 10^5)$个格子$a_1,\dots,a_n$有布丁怪兽,一开始连续的怪兽算一个怪兽,有$m(m\leqslan ...

  8. Ubuntu 18.04 Server 配置静态ip

    刚在虚拟机里面状态了一个 Ubunut 18.04 Server 作为我的服务器,我习惯使用静态ip首先再virtualbox中设置虚拟机网络的连接方式为桥接模式进入ubuntu虚拟机根据我的印象直接 ...

  9. ubuntu 18.04安装RTX 2060 显卡驱动

    第一:安装ppa的显卡驱动源 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update 第二:检查显卡和推荐驱动 ubuntu- ...

  10. Postman请求后台报错:Invalid character found in method name. HTTP method names must be tokens

    在使用Postman请求后台时Postman出现 开发工具控制台报 信息: Error parsing HTTP request header Note: further occurrences of ...