专栏首页用户6093955的专栏STL详细介绍(更新中~~~)

STL详细介绍(更新中~~~)

目录

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/81938998https://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值*/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据结构期末复习——还原二叉树(根据先序和中序遍历输出先序遍历)

    参考博客:https://blog.csdn.net/qq_37708702/article/details/79644068

    _DIY
  • Problem E: 数量的类模板

    _DIY
  • Flooded! UVA - 815 (sort排序)

    _DIY
  • 两个字符串 char* a, char* b,输出b在a中的位置次序。

    Daotin
  • 做软件测试到底要不要学编程?

    乔布斯曾经说过「每个人都应该学习编程,因为它会教你如何思考」,看,乔帮主都觉得所有人都应该学编程,那你说做测试的要不要学?当然要。

    sylan215
  • Stopwatch类学习

    1、概述:给一条大MSDN的链接关于Stopwatch类最详细的教程 ,然后看着教程自己手动敲一边,加深映象,好记性不如烂键盘,哈哈,开个玩笑! 2、类位置:这...

    郑小超.
  • WebAssembly的初步了解

    2017年2月28日,四大浏览器,IE,FF,Chrome,Safari宣布达成共识,即 WebAssembly 的 MVP (最小化可行产品)已经完成。大约一...

    javascript.shop
  • 技术 | Python从零开始系列连载(十八)

    可迭代对象:在之前学习的基础上,可以简单的理解为可以用for循环遍历的,如学过的list tuple dict set str

    灯塔大数据
  • 极客DIY:打造属于自己的无线移动渗透测试箱

    本文中介绍的工具、技术带有一定的攻击性,请合理合法使用。 ? 你想不想拥有一款属于自己的移动无线渗透测试箱,如果你感兴趣,下面介绍的设备将会对你很有帮助。这...

    FB客服
  • 每天一道leetcode069-x的平方根

    实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。...

    乔戈里

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动