読者です 読者をやめる 読者になる 読者になる

情報科高専生のよくわからないいろいろ

プログラミングやってる人がチラシの裏感覚でいろいろ書いてたらこうなりました

C++でいわゆるsplit関数を書いてみた

いわゆるsplit関数(またはsplitメソッド)とは、”ある一つの文字列を、こちらが指定した区切り文字で区切って、複数の文字列で返す”というものだ。

何かと便利で需要のあるsplit関数。事実、自分もpaizaの問題を解いているときに、「split関数を使いたい」と思ったことがある。

自分はpaizaの問題を解くときは、基本C++を使う。しかしC++は、少なくともstringクラスには、split関数(splitメソッド)が実装されていない。当然割とよく使うであろうiostreamにもvectorにも実装されていない。つまり、split関数を使いたいのであれば自分で実装する必要がある。

というわけで実装した。今回は『対象の文字列の参照strと区切り文字delm』を引数に取る形のものを実装した。

まずは適当にソースコードと実行結果をコピペしたテキストファイルを。多分ソースコードコピペで動くと思う。

適当に説明を書いていく。

まず引数にてsplit対象の文字列の参照と区切り文字を受け取る。

vector<string> result : 最終的にsplit後の結果を格納しているはずの変数。(vectorについてよくわかんない方はググってください。)

vector<char> baka : 一時変数。元の文字列から、区切り文字で区切った際の文字列の一つを格納するはず。ちなみにbakaなのは筆者の頭である。

元の文字列を1つ1つ調べ、こちらが引数で指定した区切り文字がくるまでは、先ほど宣言したbakaに、律儀に1文字づつ追加していく。・・・これで区切り文字までの一つの文字列を格納したようだ。

区切り文字が来たのならば、resultのケツに、bakaに格納されている文字列を追加したい。そこで、「string tmp(baka.begin(), baka.end());」こうする。こうすると、char型のvector全体を一つの文字列型としてとり出せる(なお変数名は任意)。

そして「result.push_back(tmp);」でresultのケツに区切り文字までの文字列を突っ込み、bakaに格納されている要素を一旦全て消す。

このくだりを元の文字列の末尾まで繰り返す。

for文を抜けたら、最後に区切り文字がこなかったがために放ったらかしにされているbakaの中身をresultのケツに突っ込んで、元の文字列を区切って一つ一つ突っ込み終えたresultを戻り値として返して終わり。

ポインタとか参照とかそういったものの詳しいことは今回は省略。別の機会に自分なりに何かしら書ければと思っていたり。まあ自分もよくわかっていないんだけれども。

 

余談。

前回特にネットワークの知識がなくともフィルタリングを回避できてしまう方法を紹介した。設定画面の同じページ(?)に、「広告をブロックする」てきなチェックボックスがあったと思う。このブログを見るときは、広告をブロックしないで見て欲しいなあ・・・ VPNを有効にすると、接続速度が遅くなる。それだけだ。決してadをクリックしてほしいとかそういうのではない。

 

フィルタリングはカス!!!というわけで回避する

フィルタリングはカス!!!

などと、でかでかと感情的にこう述べる。

今回はそのカスを回避できる、自分が最近やり始めた方法を紹介しようと思う。

自分の家のルーターにはフィルタリングがかかっている。

当然、エロサイトが見れない。

2次元美少女のエッチで可愛らしい画像を漁ることすらできない。

あと一部の2chまとめとかが見れないのとその他いわゆる”子供の教育上良くない”ことが書かれてそうなサイトも引っかかる。

自分はもうすでに18歳以上だから18禁のものを見たって咎められることはない。それに自慢ではないが(というか当たり前のことだが)、自分は今までフィルタリングに守られた(フィルタリングのお陰で助かった)ことは一度もない。邪魔されたことならある。どれだけ邪魔されたかは、30回から先は覚えていない。

 

試しに自分のPC(MacBook Air)を用いて家のルーターからhotgoo(ホモビデオが沢山あるサイトもちのろんで18禁)にアクセスしてみよう。すると・・・

f:id:NullprtException:20161103003721p:plain

何がファミリースマイルだよ少なくとも俺は笑ってねえぞ。

などと自分の中だけでうまいことを言ったつもりになる。

 

さて、ようやく本題。今回自分はこのルーターにかかっているフィルタリングを、誰でも簡単に回避できるやり方を、全国の家のルーターにフィルタリングがかかっていてエッチなものが見れなくて困っている男子諸君に紹介しようと思う。

今回紹介する方法はPCからインターネットをする場合の方法。iOSとかAndroidを搭載した端末だったら、有名な方法だけどOpera miniでも使っとけばいいんじゃないかな、多分。App StoreまたはGoogle Play Storeで”Opera mini”って検索すれば出てくるよきっと。・・・適当でごめん。

話を戻す。その方法とは、Opera(PC向けブラウザ)を使うことだ。

まずは ブラウザ | 無料でダウンロード | 高速で安全な Web ブラウザ | Opera からOperaをダウンロード&インストールしよう。

次に、Operaの”設定”(Macなら環境設定)を開く。”基本設定”の”プライバシーとセキュリティ”を選択し、”VPNを有効にする”ってところのチェックボックスにチェックを入れる。

f:id:NullprtException:20161103011138p:plain

自分のMacBook Airだとこんな感じ。

 

なんとこれでOK。さあ、Operaを使って早速さっきのホモビデオが沢山あるサイトにアクセスしてみよう。

f:id:NullprtException:20161103011434p:plain

期待しながらリンクをクリックすると・・・

f:id:NullprtException:20161103011640p:plain

見事にアクセスできました!やったね!

VPNについて興味のある方は各自でググってください。

 

それと、ルーターにフィルタリングがかかっているということがわかりきっていて、自分にネットワークの知識があり、そして約1〜2万円程度お金の余裕があるならば、新しくルーターを購入して新たなネットワークを構成してしまうというのも一つの手。ルーターにフィルタがあるならフィルタのないルーターを買えばいいじゃない()

 

フィルタリングを回避する手段を知ってしまい、フィルタリングの呪縛から解かれたあなたは(私も)現在自由の身です。とても清々しいことでしょう。しかし、どんなことがあっても自己責任だということも忘れないでください。フィルタリングはあなたを、インターネット上にはびこっている詐欺から守ってくれます。不正改ざんされたサイトや、どう見ても違法なことをしているサイトからも守ってくれます。しかしフィルタリングがない状態に置かれたあなたは、それらを自分で判断して、自分の身を自分で守らなくてはいけません。それを頭の片隅に残しておきましょう。まあ、XVIDEOSとか有名なエロサイトを見るくらいだったら、変な広告踏まない限り多分大丈夫だとは思いますが・・・

 

こうして、フィルタリングを回避することに成功したこのブログの主は、二次元美少女のエッチで可愛らしい画像を探すことができ、幸せになったのであった。

初めまして(テンプレ)

早速誤字をした。

自分のブログURL, ニックネームは”NullptrException”でIDもこれにするつもりだった。が自分のIDは”NullprtException”となってしまっている。

どういう例外吐いてんだよ

 

適当に自己紹介

 

C++少し書ける

C#少し書ける

・paiza Cランク(2016/10/31現在)

・C少し書ける

・ごくわずかのiOSアプリ開発経験あり(使用言語 : Swift)

・python3少し書ける

 

・鉄オタ

・乗るのも撮るもの

VVVFとか好きだったりする

・都営新宿線の車両が好き

・特に東京都交通局10-300形(中でも特に1,2次車)

E531系好き

京急好き

・もちろん関東以外の車両で好きなものもある

・223系(JR西日本)は新快速の1000, 2000番台よりも0番台とか好きだったりする

・近郊形の車両が好きだったりする

 

・2次オタ

・東方好き

八雲紫俺の嫁

・可愛い子が好きでしょうがない

・自分が可愛いと思ったものには性別関わらず萌えてしまう

・でも何が好きかってのは割とまちまち

・萌え豚とか言わないでください

・アニメはほとんど見ません

 

・好きな食べ物は黒髪ぱっつんと箱入り娘

・The☆高専生ですねわかります

 

このブログの公開日は2016/10/31。本当は昨日公開する予定だったがいろいろあってこう。