WAYNETS.ORG

Game and Program

工具

作者:

发表于

Context Polling System Post-Processing Renderer

字符串

string s;

s.size();
s.length();

ranges::sort(s); // 将字符串的字符排序

使用istringstream辅助拆分字符串

std::string path = "Assets/Textures/Player.png";
std::istringstream ss(path);
std::string segment;
while (std::getline(ss, segment, '/')) 
{
    std::cout << segment << '\n';
}

// 输出
Assets
Textures
Player.png

使用题目:

将数字字符转换成整数:

stoi(token.c_str())

Vector

res.empty(); // 验证是否为空
res.back();  // 返回最后一个的值

res.begin(); // 返回开头下标
res.end();   // 返回结尾下标

res.reserve(10); // 分配容量,不创建元素。res.size() 仍然为 0。
res.resize(10);  // 实际创建 n 个元素。res.size() 会变为 n。

ranges::find(res, 10) // 寻找某个值的index
ranges::reverse(row)  // 翻转

/* Unique去重:把所有重复的值放到末尾,然后返回一个迭代器 */
std::vector<int> v = {1, 2, 2, 3, 3, 3, 4};
auto it = std::unique(v.begin(), v.end());
// 结合erase可以删除这些重复元素
v.erase(it, v.end());

二叉树

排序

vector<vector<int>>& intervals
sort(intervals.begin(), intervals.end());
ranges::sort(intervals, {}, [](auto& p) { return p[1]; });

数组

int rows[9][9];
int subboxes[3][3][9] = {0};
memset(rows, 0, sizeof(rows));

哈希

unordered_map<int, int> u_map;

// 除去某个值
u_map.erase(key);

// 结构化绑定:遍历unordered map,忽略key,只取value
for (auto &[_, value] : u_map) 
{
    res.push_back(value);
}

随机数

#include <iostream>
#include <cstdlib>
#include <ctime>

int main() 
{
    srand((unsigned)time(NULL));
    int n = 10; // 随机数范围
    std::cout << rand() % n << std::endl; // 每次运行都可能不同
    return 0;
}

Lambda

auto dfs = [&](this auto&& dfs, int index) 
{
    if (index == n) 
    {
        ans.emplace_back(path);
        return;
    }
    for (char c : MAPPING[digits[index] - '0']) 
    {
        path[index] = c; // 直接覆盖,而不像其他问题一样pop_back
        dfs(index + 1);
    }
};

时间复杂度

排序:O(nlogn)

哈希:O(n)

Leave a comment