字符串与二元组的基本操作和用法

6.字符串

include<string>

储存字符串

6.1 常用方法

构造

构造函数:string(长度, 初值)

string s1;           // 构造字符串,为空
string s2 = "aaa";  // 构造字符串,并赋值aaa
string s3(10, '6');  // 构造字符串,通过构造函数构造为6666666666
输入输出
string s;
cin >> s;
cout << s;
其他
作用用法示例
修改、查询指定下标字符[]s[1] = 'a';
是否相同==if (s1 == s2)
字符串连接+string s = s1 + s2;
尾接字符串+=s += "aaa";
取子串.substr(起始下标, 子串长度)string sub = s.substr(2, 10);
查找字符串.find(字符串, 起始下标)int pos = s.find("awa");
数值与字符串互转
目的函数
int / long long / float / double / long doublestringto_string()
stringintstoi()
stringlong longstoll()
stringfloatstof()
stringdoublestod()
stringlong doublestold()

6.2注意事项

尾接字符串一定要用 +=

string 的 += 运算符,将会在原字符串原地尾接字符串。而 + 了再 = 赋值,会先生成一个临时变量,在复制给 string.

通常字符串长度可以很长,如果使用 + 字符串很容易就 TLE 了。

string s;
for (int i = 0; i < 5e5; i++)
    s = s + "a";

// 优化后
string s;
for (int i = 0; i < 5e5; i++)
    s += "a";

7. 二元组pair

#include <utility>

用来储存二元组

7.1 常用方法

构造

pair<第一个值类型, 第二个值类型> pr

  • 第一个值类型:要储存的第一个值的数据类型
  • 第二个值类型:要储存的第二个值的数据类型
pair<int, int> p1;
pair<int, long long> p2;
pair<char, int> p3;
赋值
pair<int, char> pr = make_pair(1, 'a');
pair<int, char> pr = {1, 'a'};
取值

直接取值

  • 取第一个值:.first
  • 取第二个值:.second
pair<int, char> pr = {1, 'a'};
int awa = pr.first;
char bwb = pr.second;

结构化绑定 C++17

pair<int, char> pr = {1, 'a'};
auto &[awa, bwb] = pr;
判同

直接用 == 运算符

pair<int, int> p1 = {1, 2};
pair<int, int> p2 = {1, 3};
if (p1 == p2) { ... } 

7.2 适用场景

所有需要二元组的场景均可使用。

  • 13
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值