ためすう
コンソールで名前付きルーティングを呼び出す (Rails)
2019-10-04やったこと
開発コンソールで名前付きルーティングを呼び出せるようにします。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
$ rails --version
Rails 5.2.3
調査
このような routes が設定されていたとします。
hello_index GET /hello/:hello_id/index(.:format) hello#index
コンソールで呼び出します。
$ rails c
...
irb(main):007:0> Rails.application.routes.url_helpers.hello_index_path(1)
=> "/hello/1/index"
参考
vector を使ってみる (C++)
2019-10-04やったこと
vector を使ってみます。
確認環境
$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
調査
test.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
vector<int> v { 20, 30, 50 };
v.push_back(90);
v[0] = 1;
for (int v2: v) {
printf("%d\n", v2);
}
printf("---\n");
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
printf("%d\n", *it);
}
}
出力結果
1
30
50
90
---
1
30
50
90
参考
set を使ってみる (C++)
2019-10-04やったこと
set を使ってみます。
確認環境
$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
調査
test.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
set<int> m;
m.insert(10);
m.insert(5);
m.insert(5);
for (int v: m) {
printf("%d\n", v);
}
}
出力結果
5
10
参考
標準入力を受け取る (Ruby)
2019-10-03やったこと
標準入力を受け取る方法を調べました。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
調査
ruby-gets.rb
a = gets
b = gets.chomp
p a
p b
出力結果
$ ruby ruby-get.rb
aaa
bbbbb
"aaa\n"
"bbbbb"
chomp で改行が削除されます。
参考
map を使ってみる (C++)
2019-10-03やったこと
map を使ってみます。
確認環境
$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
調査
test.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
map<string, int> m;
m.insert(make_pair("key1", 1));
m.insert(make_pair("key2", 5));
m.insert(make_pair("key3", 9));
printf("%d\n", m.at("key2"));
}
出力結果
5
参考
memset を使ってみる (C++)
2019-10-03やったこと
memset を使ってみます。
確認環境
$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
調査
test.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int aaa[10];
cout << sizeof(aaa) << "\n";
memset(aaa, 0, sizeof(aaa));
for (int a : aaa) printf("%d\n", a);
}
出力結果
40
0
0
0
0
0
0
0
0
0
0
参考
Hash をマージする (Ruby)
2019-10-02やったこと
Hash でマージするときの下記メソッドを使ってみました。
- merge
- update
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
調査
ruby-hash.rb
h1 = { a: 100, b: 200, c: 300 }
h2 = { a: 10, d: 500 }
p h1.merge(h2) { |index, old, new| old + new }
p h1
p '---'
p h1.update(h2)
p h1
出力結果
$ ruby ruby-hash.rb
{:a=>110, :b=>200, :c=>300, :d=>500}
{:a=>100, :b=>200, :c=>300}
"---"
{:a=>10, :b=>200, :c=>300, :d=>500}
{:a=>10, :b=>200, :c=>300, :d=>500}
参考
fill を使ってみる (C++)
2019-10-02やったこと
fill を使ってみます。
確認環境
$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
調査
test.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int aaa[10];
fill(aaa, aaa + 10, 3);
for (int i = 0; i < 10; i++) {
printf("i: %d value: %d\n", i, aaa[i]);
}
}
出力結果
i: 0 value: 3
i: 1 value: 3
i: 2 value: 3
i: 3 value: 3
i: 4 value: 3
i: 5 value: 3
i: 6 value: 3
i: 7 value: 3
i: 8 value: 3
i: 9 value: 3
i: 10 value: 3
参考
make_pair を使ってみる (C++)
2019-10-02やったこと
make_pair を使ってみます。
確認環境
$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
調査
test.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
pair<int, int> p[10];
p[0] = make_pair(1, 100);
p[1] = make_pair(2, 333);
for (int i = 0; i < 2; i++) {
printf("first: %d second: %d\n", p[i].first, p[i].second);
}
}
出力結果
first: 1 second: 100
first: 2 second: 333
参考
ビット演算してみる (C++)
2019-10-01やったこと
ビット演算してみます。
確認環境
$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
調査
test.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int a = 1;
cout << a << "\n";
cout << std::bitset<8>(a) << "\n";
int a2 = a << 2;
cout << a2 << "\n";
cout << std::bitset<8>(a2) << "\n";
int a3 = a2 >> 1;
cout << a3 << "\n";
cout << std::bitset<8>(a3) << "\n";
}
出力結果
1
00000001
4
00000100
2
00000010