C++のSTLって不安定なんですか??
以前、std::cout を使っていて文字化けを起こしたので std::printf()を使ったところ、文字化けが解消されました。
boostにformatがありますよね。
printfの書式指定が使えるので、以前は使っていたのですが・・・
C++
1#include <iostream> 2#include <boost/format.hpp> 3 4int main() 5{ 6 std::cout << 7 boost::format("%2% %1%") % 3 % std::string("Hello") 8 << std::endl; 9 return 0; 10}
これも文字化けを起こす時があって、安定して使えないという理由で今は使っていません。
ベタ貼り状態の文字列の時だけ、std::cout を使っています。
他にも、昨日バックトラック法を使ったアルゴリズムのプログラムを作成していたのですが、ちょっと変更を加えただけでセグメンテーションフォルトが起きて困っていました。
GDBで追ってみても、原因がわからず、printfデバッグを使って原因を突き止めたら・・・
C++
1std::string data; 2std::getline(std::cin, data);
の部分でセグメンテーションフォルトを起こしていました。
もぉ・・・何がなんだか・・・
以下のようなものを見つけました。
Linus TorvaldsのC++批判は正しかったのか
STLやBoostを潜在的に不安定で非効率にした原因がC++だと考える開発者も多い。
やはり、C++ STLって一般的に「不安定」と言われているものなのでしょうか??
あまり、STLを使わない方が良いんでしょうか?
C++ STLを使うときの注意点や不安定性の回避方法などがあったら教えてください。
やはり、 C言語の関数が良い感じがしますね。
あ、コンパイラはgcc g++ を利用しています。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/03 13:25
2018/05/03 14:46
2018/05/03 16:00
2018/05/03 16:04
2018/05/03 17:18
2018/05/04 04:07