Code date creation 新一代 C++ 图形化数据生成器 v8.0.0 · 幻想

技术内幕 · 03 / 16

生成器代码模式

在界面里写 C++ 生成器,一键编译并批量产出 .in —— 7.1.0 的主推用法。

16 个章节 37 段代码 21 张对照表 全部对着源码核对

「随机生成」适合造简单数据;一旦需要树、图、几何这种带结构的数据,随机参数就不够用了。7.1.0 因此加了生成器代码模式:用户直接写一段 C++,把数据打到标准输出,其余交给程序。

一次点击做了四件事

  1. 把编辑器里的代码写成临时源文件 %TEMP%\cdc_gen\generator.cpp
  2. 调用 g++ 编译成 generator.exe(自动带上内置库的头文件路径)
  3. 对每个数据点编号 i 运行一次:generator.exe <i>
  4. 把该次运行的标准输出直接存成 <数据目录>\<i>.in

编译命令

TEXT3 行
"g++.exe" -O2 -std=c++23 -static -static-libgcc -static-libstdc++ \
          -I"<exe 目录>\cdc_lib" "%TEMP%\cdc_gen\generator.cpp" \
          -o "%TEMP%\cdc_gen\generator.exe"
参数作用
-std=c++23生成器可以直接使用 C++23 的语法与标准库设施
-O2造大规模数据时明显更快
-static 系列生成器不依赖任何 MinGW 运行库,拷到别的机器也能跑
-I"cdc_lib"自动挂上内置的 CDCSCQ 函数库,源码里 #include <cdcscq.hpp> 不用自己配路径

数据点编号是生成器的输入

每次运行都会把编号当成第一个命令行参数传进去。CDCSCQ 提供了 case_id() 把它取出来,于是同一份代码可以按编号产出规模递增的数据:

CPP9 行
#include <cdcscq.hpp>
using namespace cdcscq;

int main() {
    seed();                     // 时间播种
    int n = 10 * case_id();     // 第 1 个点 n=10,第 2 个点 n=20 …
    out_vec(seq(n, 1, 1000000000));
    return 0;
}

防御与容错

  • 单次最多 1000 个数据点 —— 编号上限在服务端被截断,避免误填一个巨大的结束编号把磁盘写满
  • 数据目录必须是绝对路径 —— 半吊子路径(如 桌面\xxx)会被拒绝并提示,防止文件写到意料之外的位置
  • 运行失败的半截文件会被删除 —— 生成器退出码非 0 时,该 .in 直接清掉,不留残次品
  • 只检查代码不生成 —— 模式选「仅检查」时编译通过即返回,不写任何数据文件

Code date creation(CDC)是作者 starryfast 独立开发的 C++ 图形化数据生成器,GitCode 组织「Code date creation编写」。生成器统一按 C++23 标准编译:随机模式按值域批量造点,自编译模式把你的 AC 代码直接跑成 .out,再一键打包成可提交的 zip —— 从造数据到交题,一个 exe 全包。v8.0.0「幻想」起内置了幻想增强引擎,提供 20 项数据校验与分析能力,全部在本机完成,不联网、不上传。

交流

ACGO 发布帖 B 站空间 272215275@qq.com QQ 272215275 MC gm.rainplay.cn:15415

© 2026 Code date creation编写 · 作者 starryfast · 本站与 cdc.mjhcsp.xyz 同源

市面上的盗版程序可能携带病毒,请仅从本页或官方代码仓获取安装包。