stoi/stoll/stof和atoi/atoll
int stoi (const string& str, size_t* idx = 0, int base = 10);
- 参数
1) tr:它指定一个以整数表示的字符串对象。
2) idx:它指定一个指向size_t类型的对象的指针,该指针的值由函数设置为数值后st r中下一个字符的位置。该参数也可以是空指针,在这种情况下不使用它。
3) base:它指定数字基来确定解释字符的数字系统。如果基数为0,则要使用的基数 由序列中的格式确定。预设值为10。
long long atoll(const char *nptr);//传入字符数组,返回int类型
bitset用法
bitset<4> bitset1; //无参构造,长度为4,默认每一位为0
bitset<8> bitset2(12); //长度为8,二进制保存,前面用0补充
string s = "100101";
bitset<10> bitset3(s); //长度为10,前面用0补充
char s2[] = "10101";
bitset<13> bitset4(s2); //长度为13,前面用0补充
1. 位运算操作符
~s:返回对bitset s 按位取反的结果。
&, |, ^: 与、或、异或。
>>, <<: 左移位和右移位。
==,!=: 判断两个bitset是否相等。
2. []操作符
s[k]表示s的第k位, 既可以取值,也可以赋值
3. count
s.count()返回有多少位1
4. any、none
若s所有位都为0, 则s.any()返回false, s.none()返回true
若s至少一位为1, 则s.any()返回true, s.none()返回false
5. set/reset/flip
s.set()把s所有位变为1
s.set(k, v) 即是s[k] = v
s.reset()把所有位变为0
s.reset(k) 即是s[k] = ~s[k]
s.flip()把所有位取反, s = ~s
s.flip(k)即是s[k] ^= 1
6. s.to_string()
将s转化为string类型
个人用的多一点, 这些函数和库完全可以自己实现, 也很简单。
这真的常用吗