C++ 编程总结 一
C++ 编程总结
整形和string的相互装换
常见的用法和范围界定见代码
#include<bits/stdc++.h>
#include <climits>
using namespace std;
int main() {
//string 2 Integer && Integer 2 string
//int stoi (const string& str, size_t* idx = 0, int base = 10);
//Other functions are similar
cout << stoi(to_string(INT_MAX), 0, 10) << endl;
cout << stoi(to_string(INT_MIN)) << endl;
cout << stol(to_string(LONG_MAX)) << endl;
cout << stol(to_string(LONG_MIN)) << endl;
cout << stoul(to_string(ULONG_MAX)) << endl;
cout << stof(to_string(FLT_MAX)) << endl;
cout << stod(to_string(DBL_MAX)) << endl;
// ostringstream stream;
// stream << INT_MAX;
// cout << stream.str() << endl;
return 0;
}
do {...} while(0)
一般见于#define 语句块中,为了不反直觉
-
例子一
#define FOO(x) foo(x); bar(x) if (condition) FOO(x); else // syntax error here ...;
此时 foo(x) 和 bar(x) 两个函数,只有 foo(x) 会处于 if 的条件下,我们可以加上花括号
-
例子二
#define FOO(x) { foo(x); bar(x); } if (condition) FOO(x) else ...
此时,FOO(x) 后面没有添加分号 ; ,这是违反直觉的,所以我们可以用do while(0) 解决这个问题
-
例子三
#define FOO(x) do { foo(x); bar(x); } while (0) if (condition) FOO(x); else ....
上面的问题都可以迎刃而解