Skip to content

Instantly share code, notes, and snippets.

@hmito
hmito / C++
Last active June 14, 2020 22:07
それ、ポインタ使わなくてもできるよ:C言語のポインタとC++の流儀 ref: https://qiita.com/hmito/items/44925fca9fca74e78f61
std::function<double(double,double)> Func = [](double val1, double val2)->double{return std::max(val1*val1,val2*val2);};
double Ans = Func(10,-12);
//Ans==144
@hmito
hmito / file0.cpp
Last active December 23, 2015 15:25
[C++] csvファイル入出力用のiteratorを作ってみた話 ref: http://qiita.com/hmito/items/45289b60e5274796b52b
#include <iostream>
#include <fstream>
#include "csv_iterator.hpp"
int main(){
//カンマ区切り(csv)でファイルを読みだして、タブ区切りで画面に出力する
auto oitr = csv::current(std::cout, csv::mode::tsv);
std::ifstream fin("data.csv");
for(auto itr = csv::begin(fin, csv::mode::csv); itr != csv::end(fin); ++itr){
@hmito
hmito / file0.cpp
Last active July 17, 2017 20:05
C++で効率よく重複のない乱数列を生成する ref: http://qiita.com/hmito/items/9f4bdc8442b6f6b3c7bc
std::vector<int> make_rand_array_unique(const size_t size, int rand_min, int rand_max){
if(rand_min > rand_max) std::swap(rand_min, rand_max);
const size_t max_min_diff = static_cast<size_t>(rand_max - rand_min + 1);
if(max_min_diff < size) throw std::runtime_error("引数が異常です");
std::vector<int> tmp;
auto engine = create_rand_engine();
std::uniform_int_distribution<int> distribution(rand_min, rand_max);
const size_t make_size = static_cast<size_t>(size*1.2);
@hmito
hmito / file10.cpp
Last active June 15, 2020 04:44
C++11スマートポインタ入門 ref: https://qiita.com/hmito/items/db3b14917120b285112f
//通常のポインタがほしい時には、get関数を使う。
//ポインタの所有権はunique_ptrが保持し続ける
int* pint;
pint = ptr.get();
//所有権自体を放棄する場合は、release関数を使う
//この場合、メモリの解放自体は自分で行う必要がある
pint = ptr.release();
delete pint;