Language: C++

#include <stdio.h>
#include<math.h>
#include<bitset>
#include<string>
#include<iostream>
#include<vector>
#include<string.h>
#include<algorithm>
#include <iomanip>
using namespace std;



bit全探索（部分和）
for (int bit = 0; bit < (1<<n); ++bit)
    {
      
        vector<int> S;
        for (int i = 0; i < n; ++i) {
            if (bit & (1<<i)) { 
                S.push_back(i);
            }
        }


        cout << bit << ": {";
        for (int i = 0; i < (int)S.size(); ++i) {
            cout << S[i] << " ";
        }
        cout << "}" << endl;
    }


基本事項
vector<型>a(要素数);
<vector<vector<型>>変数名(要素数1,vector<型>(要素数2,初期値※不要));
ようは
vector<vector<要素の型>> 変数名(縦の要素数, vector<要素の型>(横の要素数));
アクセス
変数名.at(添字1).at(添字2)


配列のコピー(memcpy)
memcpy(array2, array1, sizeof(array1));
※array1をarray2にコピー
※恐らくarray1の大きさ=array2の大きさ
※なぜか動作しない場合がある　注意

n乗
pow(a,b) //aのb乗

静的配列
配列の長さ
array.length()

動的配列

ソート
sort(array.begin(),array.end()) 昇順
sort(array.begin(),array.end(),greater<int>()) 降順
sort(array[i].begin(),array[i].end()) array[i]についてソート ex)a[0]="cba"がa[0]="abc"になる

配列内の要素aの数
count(array.begin(),array.end(),a)

末尾に要素を追加
array.push_back;
末尾の要素を消去
array.pop_back;

※動作せず
配列全体のメモリサイズ
sizeof array
配列の要素一つ分の大きさ
sizeof array[0]
配列の要素数
sizaof array/sizeof array[0]

※デフォルトでは切り捨て
切り捨て
floor(a)
切り上げ
ceil(a)
(a+(b-1))/b
四捨五入
round(a)
(a+(b/2))/b

小数点（整数含め）何ケタまで表示するか。
ex) cout<<setprecision(n)<<a<<endl;

型変換
変数=static_cast<変更する型>(型変更する変数);

Compiler output:
a.cc:36:54: error: extended character ※ is not valid in an identifier
   36 | <vector<vector<型>>変数名(要素数1,vector<型>(要素数2,初期値※不要));
      |                                                      ^
a.cc:45:1: error: extended character ※ is not valid in an identifier
   45 | ※array1をarray2にコピー
      | ^
a.cc:46:1: error: extended character ※ is not valid in an identifier
   46 | ※恐らくarray1の大きさ=array2の大きさ
      | ^
a.cc:47:1: error: extended character ※ is not valid in an identifier
   47 | ※なぜか動作しない場合がある　注意
      | ^
a.cc:47:1: error: extended character 　 is not valid in an identifier
a.cc:71:1: error: extended character ※ is not valid in an identifier
   71 | ※動作せず
      | ^
a.cc:79:1: error: extended character ※ is not valid in an identifier
   79 | ※デフォルトでは切り捨て
      | ^
a.cc:89:1: error: extended character 。 is not valid in an identifier
   89 | 小数点（整数含め）何ケタまで表示するか。
      | ^
a.cc:14:1: error: 'bit\U00005168\U000063a2\U00007d22\U0000ff08\U000090e8\U00005206\U0000548c\U0000ff09' does not name a type
   14 | bit全探索（部分和）
      | ^~~~~~~~~~~~~~~~~~~
a.cc:15:19: error: 'bit' does not name a type
   15 | for (int bit = 0; bit < (1<<n); ++bit)
      |                   ^~~
a.cc:15:33: error: expected unqualified-id before '++' token
   15 | for (int bit = 0; bit < (1<<n); ++bit)
      |                                 ^~
a.cc:34:1: error: '\U000057fa\U0000672c\U00004e8b\U00009805' does not name a type
   34 | 基本事項
      | ^~~~~~~~
a.cc:36:1: error: expected unqualified-id before '<' token
   36 | <vector<vector<型>>変数名(要素数1,vector<型>(要素数2,初期値※不要));
      | ^
a.cc:37:1: error: '\U00003088\U00003046\U0000306f' does not name a type
   37 | ようは
      | ^~~~~~
a.cc:39:1: error: '\U000030a2\U000030af\U000030bb\U000030b9' does not name a type
   39 | アクセス
      | ^~~~~~~~
a.cc:45:1: error: '\U0000203barray1\U00003092array2\U0000306b\U000030b3\U000030d4\U000030fc' does not name a type
   45 | ※array1をarray2にコピー
      | ^~~~~~~~~~~~~~~~~~~~~~~
a.cc:68:1: error: '\U0000672b\U00005c3e\U0000306e\U00008981\U00007d20\U00003092\U00006d88\U000053bb' does not name a type
   68 | 末尾の要素を消去
      | ^~~~~~~~~~~~~~~~
a.cc:71:1: error: '\U0000203b\U000052d5\U00004f5c\U0000305b\U0000305a' does not name a type
   71 | ※動作せず
      | ^~~~~~~~~
a.cc:92:1: error: '\U0000578b\U00005909\U000063db' does not name a type
   92 | 型変換
      | ^~~~~~