刷题小知识点
1.C++中的
to_string()
系列函数将数值转换成字符串形式。注意,
不支持C++ 11标准的编译器可能不支持to_string()。
string to_string(int val);
string to_string(long val);
string to_string(long long val);
string to_string(unsigned val);
string to_string(unsigned long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string(long double val);
2.c_str()
返回一个C语言字符串的指针常量(即可读不可改变),内容与调用此方法的原字符串相同。使用场景:
char c[20];
string s="hello";
strcpy(c,s.c_str());
3.atoi()
与stoi()
函数,把数字字符串转变为int输出,
atoi()
的参数是const char *
,stoi()
的参数是const string *
;stoi()
会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error。
例子:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1 = "214";
string s2 = "11111111112222222222";
cout << atoi(s1.c_str()) << endl;
cout << stoi(s1) << endl;
cout << atoi(s2.c_str()) << endl;
cout << stoi(s2) << endl;
return 0;
}
4.substr()
方法用于字符串的截取。
- 使用方法一:
字符串.substr(参数1,参数2);
。
示例: var str="abcdefghijklmn";
var res=str.substr(2,5); //从下标为2开始,截取长度为5位
结果为res:"cdefg"
var str1="abcdefghijklmn";
var res1=str1.substr(-5,2); //从倒数第5个开始,截取长度为2位
结果为res1:"jk"
- 使用方法二:
字符串.substr(参数);
示例: var str="abcdefghijklmn";
var res=str.substr(2); //从下标为2开始,截取到尾部
结果为res:"cdefghijklmn"
var str1="abcdefghijklmn";
var res1=str1.substr(-2); //从倒数第2个开始,截取到尾部
结果为res1:"mn"
5.emplace
是C++11中加入的新特性,emplace_back
能通过参数构造对象,不需要拷贝或者移动内存,相比push_back
能更好地避免内存的拷贝与移动,使容器插入元素的性能得到进一步提升。