LoginSignup
0
4

More than 3 years have passed since last update.

c,c++備忘録2

Last updated at Posted at 2020-11-04

c,c++備忘録1

目次

bit左シフトをbit表記の桁数以上してみる 20/11/4
小数点型変数の値が整数値がチェックする 20/09/20
余りを使う際のテクニック 20/7/15
2進数表記時の1の数を求める 20/7/15
bitsetを用いる時の型のサイズ指定は定数で行う。 20/7/6
2minの目安 2020/6/17
配列などの全要素にある値を代入する 2020/6/16
pythonっぽいfor文の書き方 2020/6/16

bit左シフトをbit表記の桁数以上してみる 20/11/4

  int i = 4;
  cout << (i >> 2) << endl; // 1
  cout << (i >> 3) << endl; // 0
  cout << (i >> 8) << endl; // 0

となった。
つまり、bit表記の桁数以上左シフトをしても0。
(bit表記した時に1を表記しない桁は0で埋められてるから?)

小数点型変数の値が整数値がチェックする 20/09/20

floorを使う
double x;のxの値が整数値かチェックする時は
if(floor(x) == x)
浮動小数点数の値が整数であるかどうかを調べる(C++, Ruby, JS, Go)

余りを使う際のテクニック 20/7/15

modの性質を使う
合同式の意味とよく使う6つの性質

2進数表記時の1の数を求める 20/7/15

__builtin_popcount(temp)
関数を用いる。
引数はint(long longとか、doubleとかでもできるかは試してない)
他のbuiltin関数GCCのビルトイン関数メモ

bitsetを用いる時の型のサイズ指定は定数で行う

bitset<8> bs1(131uL); // 10000011
こんな感じ。

int a = 131uL;
bitset<a> s(tmp);

みたいなのはだめ。
bitset

2minの目安

計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜

配列の全要素にある値を代入する

std::vector<int> v(5);

// v を 3 の値で埋める
std::fill(v.begin(), v.end(), 3);

std::fill

pythonっぽいforの書き方

int ar[] = {1, 2, 3, 4, 5, 6, 7};
    for(int x : ar) {
        std::cout << x << "\n";     // 1 2 3・・・7 と順に表示される
}

C++11 範囲ベース for ループ

0
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4