言語-C言語/C++

C++エラー: undefined reference to `vtable for ...'

C++でリンクをした際にでたエラーについて class Hogeを作成した際にでてきたエラー // hoge.h class Hoge{ ... public: Hoge() {}; ... virtual void func(); ... virtual ~Hoge(){}; }; のようなクラス定義をした。hoge.cppもこれに合うように作成した。 …

Makefileメモ

よく使うMakefileのメモ書き SFMTは乱数生成に使うやつ CC = g++ -std=c++11 OPTION = -I/usr/local/include -L/usr/local/lib -I../modules/SFMT-src-1.5.1 OPTIMIZE = -O3 -fopenmp DIR = ../module TEST = -DSFMT_MEXP=19937 .SECONDEXPANSION: a.out: ma…

macOS update後にうまくgccできないときは

macOSでgccをすると、 ...include-fixed/limits.h:168:61: fatal error: limits.h: No such file or directoryこんな感じのエラーに出会うことがあると思います。 パスがうまく通っていないことが原因です。 解決法 こんな感じ(versionは異なる)のファイル…

C言語での多次元配列の作成法

以下では例としてdouble型を扱っています。 2次元 mallocを複数かます staticな配列を利用する mallocを複数かます array[N][M]で参照できるようにしたい。 イメージ: まず、N個の長さのポインタの配列をとる。 次に、N*M個の長さのdoubleの配列をとる。 M個…

merge sort

アルゴリズム 数列を半分半分に分割していって並び替えたものを作る 順番を揃えつつmergeする 基本はこれだけ。最小分割単位1では何もしないこととmergeするときのアルゴリズムに注意する。 コード例 startはsortするはじめのindexで,endは最後のindex+1に…

実数を2進数表記する

問題 double型の0から1の実数を2進数表記する。 考え方 簡単な例として0.5は2進数では0.1とかける。 つまり、2倍して1のくらいが1になれば1を立てる。 コード例 #include<iostream> #include<string> using namespace std; string bitRep(double x){ string ans = "0."; wh</string></iostream>…

bit演算で値挿入

問題 最大32bit整数N, Mが与えられたときにNのjビット目からiビット目にMを挿入する。 考え方 Nのjからiビットを0に変えて、Mを挿入する 注意 ビットは0から数える。一番右が0ビット目。 コード例 #include<iostream> #include<bitset> using namespace std; unsigned int inse</bitset></iostream>…

OpenMPでの同じ要素へのアクセス

OpenMPの並列計算で行列の同じ要素にアクセスするときに同時に書き換えるとデータが壊れる可能性がある。 atomicを使うとどれかのスレッドでアクセスしている際にその作業が終わるまで待つようになる。 何度も同じ要素にアクセする際には計算時間が遅くなる…

後ろからk番目

問題 単方向連結リストにおいて末尾から数えてk番目の要素を返す。 考え方 連結リストの長さがわからないという前提で考える。 ランナーテクニックを利用する。 2つのポインタを用意する。 前からk番目からスタート 初めからスタート 1つ目のポインタが最…

ハノイの塔

問題 ハノイの塔 3つの塔とN枚のサイズの異なる円盤がある。1つの塔から別の塔に移動させる。 1度に1つの円盤しか動かせない。 塔の一番上の円盤だけ移動できる 円盤はそれよりも大きいものの上にしか置けない。 考え方 まずは具体的にやってみる。塔をs…

C++エラーメモ

エラー内容 環境:MacOS Mojave 文字列を出力するだけのC++のコードをコンパイル > g++ -std=gnu++11 sample.cpp とすると、以下のwarningが出る warning: section "__textcoal_nt" is deprecated.section __TEXT,__textcoal_nt,coalesced,pure_instructions …