sima(mu)*雑記

print(f"{雑多なこと}")

python -> C++ 対応メモ

これはpython使ってると意識しないところとかではまってググったこととか備忘録用につらつら書き連ねる予定 c++何もわからないので間違ってるかもしれません.もし間違ってたら指摘してくれるととても嬉しい

入出力

少数出力(桁数指定)

何も書かずに出力すると6桁とかになるので精度ガバではじかれたりする

cout << fixed << setprecision(15);

これを最初に一回書くと以降の標準出力は全部指定した桁数(15)になる

宣言,初期化

二次元配列の宣言

例えばH*Wの二次元配列(初期値0)が欲しいとき

dp = [[0]*W for _ in range(H)]
int dp[H][W] = {};
// これはNG (arrayは変数でサイズを宣言できない)
int dp[3003][3003] = {};
// これはOK(予めサイズが分かれば最大値+3くらいとかで宣言しとけばよい)

vector<vector<int>> dp(H,vector<int>(W,0));
// vectorなら変数で宣言できる
vector<vector<int>> dp;
dp.assign(H, vector<int>(W, 0));
// assignで後から割り当てたほうがわかりやすそう

vectorで後から割り当てるのが一番使い勝手も可読性もありそうな気がする

便利なの

範囲for文

配列を直接回すやつ

for a in aa:
    print(a)
for(auto a: aa){
    cout << a << endl;
}

for x,y in xys:みたいのはできなそう

でっかい値

INF = float('INF')
#include <climits>
INF = INT_MAX \\ int の最大値
LLINF = LLONG_MAX \\long long int の最大値