STL详细介绍(更新中~~~)
目录
string与char *(或const char*)之间的转换
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详细介绍(更新中~~~)的更多相关文章
- [转]详细介绍java中的数据结构
详细介绍java中的数据结构 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类.一起来看本文吧! 也许你已经熟练使用了java.util包里面的各 ...
- 详细介绍java中的数据结构
详细介绍java中的数据结构 http://developer.51cto.com/art/201107/273003.htm 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个 ...
- 一文带你详细介绍c++中的std::move函数
前言 在探讨c++11中的Move函数前,先介绍两个概念(左值和右值) 左值和右值 首先区分左值和右值 左值是表达式结束后依然存在的持久对象(代表一个在内存中占有确定位置的对象) 右值是表达式结束时不 ...
- 详细介绍Java中的堆、栈和常量池
下面主要介绍JAVA中的堆.栈和常量池: 1.寄存器 最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈 存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在 ...
- 详细介绍php中的命名空间
php命名空间的一个最明确的作用是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.上一章节介绍了什么是php命名空间.php官网已很明确的进行了定义并形象化解释,这 ...
- 详细介绍Java中的堆和栈
栈与堆都是Java用来在RAM中寄存数据的中央.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运转时数据区,类的对象从中分配空间.这些对象经过new.newar ...
- 详细介绍javascript中的几种for循环的区别
偶然间见到了forEach循环,感觉很新奇,就研究了一下,顺带着把js中的几种for循环做了一个比较. 首先,简单说一下,js中一共大概有四种for循环:(1).那种简单常见的for循环:(2).fo ...
- --转载 详细介绍java中的数据结构
http://developer.51cto.com/art/201107/273003.htm 也许你已经熟练使用了java.util包里面的各种数据结构,但是我还是要说一说java版数据结构与算法 ...
- react-native热更新之CodePush详细介绍及使用方法
react-native热更新之CodePush详细介绍及使用方法 2018年03月04日 17:03:21 clf_programing 阅读数:7979 标签: react native热更新co ...
随机推荐
- Grafana修改背景色
grafana默认主题色是黑底白字,我们将它修改成白底黑字: in /etc/grafana/grafana.ini uncomment line and set default_theme = li ...
- [LeetCode] 773. Sliding Puzzle 滑动拼图
On a 2x3 board, there are 5 tiles represented by the integers 1 through 5, and an empty square repre ...
- Oracle Spatial 中的弧段及弧相关拓扑错误
1.报告说明 此报告用于验证下列问题: ORACLE SPATIAL 0.05m的最小拓扑容差值是否可以被修改 原始数据通过ARCGIS入库数据精度是否有损失 修改ORACLE SPATIAL图层的最 ...
- Influx Sql系列教程二:retention policy 保存策略
retention policy这个东西相比较于传统的关系型数据库(比如mysql)而言,是一个比较新的东西,在将表之前,有必要来看一下保存策略有什么用,以及可以怎么用 I. 基本操作 1. 创建re ...
- 高性能Java代码的规范
代码优化的目标是 减小代码的体积 提高代码运行的效率 代码优化细节 1.尽量指定类.方法的final修饰符 带有final修饰符的类是不可派生的.在Java核心API中,有许多应用final的例子,例 ...
- maven 打包错误 Cannot access central in offline mode
出错的场景是这样的,先是在一台联网的linux机器上下载项目需要的包,linux机器上jdk为1.8 springboot1.5.然后将项目代码和.m2目录拷贝到一台windows机器上,window ...
- logrus 剖析之滚动日志
在实际开发过程中,为了节省磁盘,日志需要按照时间或者大小维度进行切割分成多分,归档过期的日志,删除久远的日志.这个就是在日常开发中经常遇见的日志滚动(log rotation) 那么在 logrus ...
- PXC增量恢复添加节点(IST)
绕开SST通过IST方式添加Node到Percona XtraDB Cluster Gcache存储了所有的 writeset ,因此说这个集合的大小直接决定了允许其他节点宕机后多长时间内可以进行 ...
- Unity3D 跨平台原理
Unity3D的跨平台原理核心在于对指令集CIL(通用中间语言)的应用. 机理 首先需要知道,Unity中的Mono是基于 通用语言架构(Common Language Infrastructure, ...
- springboot 2.1.3.RELEASE添加filter,servlet源码学习
Servlet规范中,通过ServeltContext来注册Filter.Servlet,这里分析Filter,Servlet是相同逻辑 springboot2.0中,我们通过 FilterRegis ...