算法札记:ACM适用的很骚的C++语法(持续更新)

iota(a,a+n+1,0):

从a0到an依次赋值0 1 2 3 4 ... n

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(&s1,"%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);

mpc\[i]=bt.to_string();

}

相关推荐
神仙别闹6 分钟前
基于C++实现的(控制台)学校开课查询系统
开发语言·c++
Dylan的码园24 分钟前
A+B问题 进制处理【逻辑控制 运算符】
c++·算法
hetao17338371 小时前
2026-09-27~28 hetao1733837 的刷题记录
c++·算法
只睡四小时1 小时前
JS 手写 D-pad 空间导航:电视端焦点引擎实战
android·开发语言·前端·javascript·ecmascript·hls·空间导航
2601_962218611 小时前
C++的几种编译器的实现
开发语言·c++
多弗朗皮卡丘1 小时前
C++ stack和queue
开发语言·c++·deque·queue·stack·容器适配器
lengxuenong1 小时前
枚举及其优化学习手册
c++·学习·算法·青少年编程
维克兜率天1 小时前
【维克】弹性策略:用“乖离率“捕捉超跌反弹
android·开发语言·python·深度学习·kotlin·量化
Benny_Tang1 小时前
P9527 [JOIST 2022] 洒水器 / Sprinkler 题解
c++·算法
TOOLS指南2 小时前
Chatshare 域名乱象:如何辨别仿冒站点,避坑指南
开发语言·信息可视化