MacOS vscode 缺省源&配置文件
MacOS 的 vscode 配置。ubuntu 的到时候再说。
缺省源
更新日期:2022年11月02日
{
// Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
// 于2022年9月11日更新
// 头文件Mac
// #include <bits/stdc++.h>
"#include":
{
"prefix":"#include",
"body":
[
"#include <bits/stdc++.h>",
"using namespace std;",
"#define int long long",
"#define INF 0x3f3f3f3f3f3f3f3f",
"void up(int &x,int y) { x < y ? x = y : 0; }",
"void down(int &x,int y) { x > y ? x = y : 0; }",
"#define N ((int)())",
"",
"",
"signed main()",
"{",
" ios::sync_with_stdio(0);",
" cin.tie(0);cout.tie(0);",
" // freopen(\"check.in\",\"r\",stdin);",
" // freopen(\"check.out\",\"w\",stdout);",
"",
" return 0;",
"}"
]
},
// 于2022年5月3日更新
// 采用 fread() 进行读入
"FastIO":
{
"prefix":"FastIO",
"body":
[
"namespace FastIO",
"{",
" #define gc() readchar()",
" #define pc(a) putchar(a)",
" #define SIZ (int)(1e6+15)",
" char buf1[SIZ],*p1,*p2;",
" char readchar()",
" {",
" if(p1==p2)p1=buf1,p2=buf1+fread(buf1,1,SIZ,stdin);",
" return p1==p2?EOF:*p1++;",
" }",
" template<typename T>void read(T &k)",
" {",
" char ch=gc();T x=0,f=1;",
" while(!isdigit(ch)){if(ch=='-')f=-1;ch=gc();}",
" while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=gc();}",
" k=x*f;",
" }",
" template<typename T>void write(T k)",
" {",
" if(k<0){k=-k;pc('-');}",
" static T stk[66];T top=0;",
" do{stk[top++]=k%10,k/=10;}while(k);",
" while(top){pc(stk[--top]+'0');}",
" }",
"}using namespace FastIO;"
]
},
// 于2022年09月11日更新
// CodeForces 快速模板
// #include <bits/stdc++.h>
"cf_CodeForces_template":
{
"prefix":"cf_CodeForces_template",
"body":
[
"#include <bits/stdc++.h>",
"using namespace std;",
"#define int long long",
"#define INF 0x3f3f3f3f3f3f3f3f",
"void up(int &x,int y) { x < y ? x = y : 0; }",
"void down(int &x,int y) { x > y ? x = y : 0; }",
"#define N ((int)())",
"",
"void solve()",
"{",
" // clear();",
"}",
"signed main()",
"{",
" ios::sync_with_stdio(0);",
" cin.tie(0);cout.tie(0);",
" // freopen(\"check.in\",\"r\",stdin);",
" // freopen(\"check.out\",\"w\",stdout);",
" int _Q=1;// cin >> _Q;",
" while(_Q--)solve();",
" return 0;",
"}"
]
},
// 于2022年9月11日更新
// poj 刷题模板
// 改错了233333333
"poj_template":
{
"prefix":"poj_template",
"body":
[
"#include <iostream>",
"#include <string>",
"#include <vector>",
"#include <algorithm>",
"#include <cstdio>",
"#include <cstdlib>",
"#include <cstring>",
"#include <cmath>",
"#include <iomanip>",
"using namespace std;",
"#define int long long",
"#define INF 0x3f3f3f3f3f3f3f3f",
"void up(int &x,int y) { x < y ? x = y : 0; }",
"void down(int &x,int y) { x > y ? x = y : 0; }",
"#define N ((int)())",
"",
"",
"signed main()",
"{",
" ios::sync_with_stdio(0);",
" cin.tie(0);cout.tie(0);",
" // freopen(\"check.in\",\"r\",stdin);",
" // freopen(\"check.out\",\"w\",stdout);",
"",
"",
" return 0;",
"}"
]
},
// 于2022年9月27日更新
// 采用 fread() 进行读入
// 支持所有类型读入
"__fastio":
{
"prefix":"__fastio",
"body":
[
"namespace __fastio",
"{",
" const int bufl=1<<20;",
" const double base1[16]={1,1e-1,1e-2,1e-3,1e-4,1e-5,1e-6,1e-7,1e-8,1e-9,1e-10,1e-11,1e-12,1e-13,1e-14,1e-15};",
" const double base2[16]={1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13,1e14,1e15};",
" struct IN{",
" FILE *IT;char ibuf[bufl],*is=ibuf,*it=ibuf;",
" IN(){IT=stdin;}IN(char *a){IT=fopen(a,\"r\");}",
" inline char getChar(){if(is==it){it=(is=ibuf)+fread(ibuf,1,bufl,IT);if(is==it)return EOF;}return *is++;}",
" template<typename Temp>inline void getInt(Temp &a)",
" {a=0;int b=0,c=getChar();while(c<48||c>57)b^=(c==45),c=getChar();while(c>=48&&c<=57)a=(a<<1)+(a<<3)+c-48,c=getChar();if(b)a=-a;}",
" template<typename Temp>inline void getDouble(Temp &a)",
" {a=0;int b=0,c=getChar(),d=0;__int128 e=0,f=0;while(c<48||c>57)b^=(c==45),c=getChar();while(c>=48&&c<=57)e=(e<<1)+(e<<3)+c-48,c=getChar();",
" if(c==46){c=getChar();while(c>=48&&c<=57)d++,f=(f<<1)+(f<<3)+c-48,c=getChar();}a=e+base1[d]*f;if(b)a=-a;}",
" IN& operator>>(char &a){a=getChar();return *this;}",
" IN& operator>>(char *a){do{*a=getChar();}while(*a<=32);while(*a>32)*++a=getChar();*a=0;return *this;}",
" IN& operator>>(string &a){char b=getChar();while(b<=32)b=getChar();while(b>32)a+=b,b=getChar();return *this;}",
" IN& operator>>(int &a){getInt(a);return *this;}",
" # ifndef int",
" IN& operator>>(long long &a){getInt(a);return *this;}",
" # endif",
" IN& operator>>(__int128 &a){getInt(a);return *this;}",
" IN& operator>>(float &a){getDouble(a);return *this;}",
" IN& operator>>(double &a){getDouble(a);return *this;}",
" # ifndef double",
" IN& operator>>(long double &a){getDouble(a);return *this;}",
" # endif",
" };",
" struct OUT{",
" FILE *IT;char obuf[bufl],*os=obuf,*ot=obuf+bufl;int Eps;long double Acc;",
" OUT(){IT=stdout,Eps=6,Acc=1e-6;}OUT(char *a){IT=fopen(a,\"w\"),Eps=6,Acc=1e-6;}",
" inline void ChangEps(int x=6){Eps=x;}",
" inline void flush(){fwrite(obuf,1,os-obuf,IT);os=obuf;}",
" inline void putChar(int a){*os++=a;if(os==ot)flush();}",
" template<typename Temp>inline void putInt(Temp a)",
" {if(a<0){putChar(45);a=-a;}if(a<10){putChar(a+48);return;}putInt(a/10);putChar(a%10+48);}",
" template<typename Temp>inline void putDouble(Temp a)",
" {if(a<0){putChar(45);a=-a;}__int128 b=a;putInt(b);a-=b;a*=base2[Eps];b=a+Acc;putChar(46);putInt(b);}",
" OUT& operator<<(char a){putChar(a);return *this;}",
" OUT& operator<<(char *a){while(*a>32)putChar(*a++);return *this;}",
" OUT& operator<<(string a){for(auto c:a)putChar(c);return *this;}",
" OUT& operator<<(int a){putInt(a);return *this;}",
" # ifndef int",
" OUT& operator<<(long long a){putInt(a);return *this;}",
" # endif",
" OUT& operator<<(__int128 a){putInt(a);return *this;}",
" OUT& operator<<(float a){putDouble(a);return *this;}",
" OUT& operator<<(double a){putDouble(a);return *this;}",
" # ifndef double",
" OUT& operator<<(long double a){putDouble(a);return *this;}",
" # endif",
" ~OUT(){flush();}",
" };",
"}using __fastio::IN;using __fastio::OUT; IN fin; OUT fout;"
]
}
}
配置文件
本机:MacBook Pro (13-inch, M1, 2020)
这里的 g++
和 gcc
用的其实是 clang++
和 clang
。
没有万能头文件,需要自己去 bits/
目录下新建一个 stdc++.h
。
c_cpp_properties.json
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "macos-clang-arm64"
}
],
"version": 4
}
launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
// {
// "name": "Python: Flask",
// "type": "python",
// "request": "launch",
// "module": "flask",
// "env": {
// "FLASK_APP": "app.py",
// "FLASK_ENV": "development"
// },
// "args": [
// "run",
// "--no-debugger"
// ],
// "jinja": true,
// "justMyCode": true
// },
{
"name": "clang++ - 生成和调试活动文件",
"type": "lldb",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "C/C++: clang++ 生成活动文件"
}
]
}
settings.json
{
"files.associations": {
"iostream": "cpp",
"ios": "cpp",
"__bit_reference": "cpp",
"__bits": "cpp",
"__config": "cpp",
"__debug": "cpp",
"__errc": "cpp",
"__hash_table": "cpp",
"__locale": "cpp",
"__mutex_base": "cpp",
"__node_handle": "cpp",
"__nullptr": "cpp",
"__split_buffer": "cpp",
"__string": "cpp",
"__threading_support": "cpp",
"__tree": "cpp",
"__tuple": "cpp",
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"chrono": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"compare": "cpp",
"complex": "cpp",
"concepts": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"exception": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"istream": "cpp",
"limits": "cpp",
"locale": "cpp",
"map": "cpp",
"memory": "cpp",
"mutex": "cpp",
"new": "cpp",
"optional": "cpp",
"ostream": "cpp",
"queue": "cpp",
"ratio": "cpp",
"set": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"string": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"typeinfo": "cpp",
"unordered_map": "cpp",
"variant": "cpp",
"vector": "cpp",
"__functional_base": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"utility": "cpp",
"p4999": "cpp",
"stack": "cpp",
"list": "cpp",
"random": "cpp",
"numeric": "cpp",
"__availability": "cpp",
"thread": "cpp",
"filesystem": "cpp",
"cfenv": "cpp",
"cinttypes": "cpp",
"condition_variable": "cpp",
"csetjmp": "cpp",
"csignal": "cpp",
"forward_list": "cpp",
"fstream": "cpp",
"future": "cpp",
"regex": "cpp",
"scoped_allocator": "cpp",
"typeindex": "cpp",
"unordered_set": "cpp",
"valarray": "cpp"
},
"python.testing.pytestArgs": [
"."
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: clang++ 生成活动文件",
"command": "/usr/bin/clang++",
// 编译警告指令参考 https://blog.csdn.net/weixin_42102584/article/details/88616467
"args": [
"-g", // 便于gdb调试
"-O2", // O2 优化
"-Wall", // 一堆警告,参考https://blog.csdn.net/u014044624/article/details/115221092
"-Wformat", // scanf & printf 传参检测
"-Wfloat-equal", // 浮点型直接用 == 比较会报警告
"-Wempty-body", // if,for,while等不小心加分号报警告
"-Wshadow", // 变量重名警告
"-Wuninitialized", // 警告未初始化的变量
"-Wreturn-type", // 非 void 函数无返回值警告
"-Wparentheses", // 警告可能缺失的大括号,例如if,if,else
"-Wsizeof-pointer-memaccess", // 警告 memset 中,第三个参数是对指针变量进行的 sizeof
"-Wconversion", // 警告可能造成数据范围损失的(自动)类型转换,如 long long 转 int
"${file}",
"-std=c++17",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "编译器: /usr/bin/clang++"
}
]
}