iota(a,a+n+1,0):
从a[0]到a[n]依次赋值0 1 2 3 4 ... n
stoi(s)
string转int
atoi(s):
char* c; int x=atoi(c);若s="123A" => 123 若s="A123" => 0
str:要转换的字符串。pos(可选):存储第一个未转换字符的索引(用于解析"123abc"这类混合字符串)。base(可选):进制的核心参数。取值范围是2 到 36,或者特殊值0。
16进制转2:
std::string hexStr = "A5"; // 16进制字符串 int num = std::stoi(hexStr, nullptr, 16); // 转成整数 std::bitset<8> bits(num); // 8位bitset std::cout << bits << std::endl; // 输出 10100101
strcmp(A,B):
相同返回0,不同返回1
sscanf(&s[1],"%d",val)
字符串中某个字符的地址是从这个字符开始,s="123A" => val=23
char date_str[] = "2025-04-15";int year, month, day;
if (sscanf(date_str, "%d-%d-%d", &year, &month, &day) == 3)
substr
// 1. 指定起始位置和长度:从索引 6 开始,取 5 个字符 -> "World" std::string sub1 = str.substr(6, 5); std::cout << sub1 << std::endl; // 输出: World // 2. 只指定起始位置:从索引 6 直到末尾 -> "World" std::string sub2 = str.substr(6); std::cout << sub2 << std::endl; // 输出: World
strchr
char* p = strchr(s, ','); // p 指向逗号 if (p != NULL) // 必须判空! std::string path = std::string(p + 1);
c_str()
用 c_str() 获取 const char*,同时必须用 const char* 接收 const char* p = strchr(s.c_str(), ','); t
to_string()
_for(i,0,16){
bitset<4> bt(i);
mp[c[i]]=bt.to_string();
}
结构体初始化
struct node{
int r,c,dir;
node(int r=0,int c=0,int dir=0): r(r),c(c),dir(dir){}
}
is_digit() isalpha() isspace()(包括空格和换行)
stringstream
//-----------------------字符串流截取建图
stringstream ss(line);
while (getline(ss,s,';')){
int u=id(s[0]);
for (auto y: s.substr(2)){
int v=id(y);
add(u,v);
add(v,u);
}
}