タグ付けされた質問 「std」

C ++標準ライブラリとその名前空間。[c ++]と組み合わせて使用​​します。

14
挿入の順序を追跡するstd :: map?
現在std::map<std::string,int>、一意の文字列識別子に整数値を格納するがあり、文字列を検索します。挿入順序を追跡しないことを除いて、ほとんどの場合私がやりたいことを行います。したがって、マップを反復して値を出力すると、文字列に従ってソートされます。しかし、私はそれらを(最初の)挿入の順序に従ってソートしたいです。 vector<pair<string,int>>代わりにaの使用を考えましたが、文字列を調べて整数値を約10,000,000回インクリメントする必要があるため、a std::vectorが大幅に遅くなるかどうかわかりません。 使用する方法はありますstd::mapか、またはstd私のニーズにより適した別のコンテナはありますか? [私はGCC 3.4を使用していて、私のにはおそらく50組以下の値のペアしかありませんstd::map。 ありがとう。

5
rand()%6がバイアスされているのはなぜですか?
std :: randの使用方法を読んでいるときに、このコードをcppreference.comで見つけました int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased 右の表現の何が問題になっていますか?試してみたところ、完全に機能しました。
109 c++  random  std 

8
範囲ベースのforループで使用するC ++ 11の範囲クラスはありますか?
私は少し前にこれを書いていることに気づきました: template <long int T_begin, long int T_end> class range_class { public: class iterator { friend class range_class; public: long int operator *() const { return i_; } const iterator &operator ++() { ++i_; return *this; } iterator operator ++(int) { iterator copy(*this); ++i_; return copy; } bool operator ==(const …
101 c++  c++11  std 


2
関数でconst std :: string&が0を受け入れないようにする
千の言葉に値する: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return 0; } 文字列を受け入れるブラケット演算子に数値0を渡しても、コンパイラは文句を言わない。代わりに、これはコンパイルされ、メソッドに入る前に失敗します: …

3
なぜstd :: stouがないのですか?
C ++ 11はいくつかの新しい文字列変換関数を追加しました: http://en.cppreference.com/w/cpp/string/basic_string/stoul これには、stoi(文字列からint)、stol(文字列からlong)、stoll(文字列からlong long)、stoul(文字列からunsigned long)、stoull(文字列からunsigned long long)が含まれます。その不在で注目すべきは、stou(文字列から符号なし)関数です。それが必要ではないが、他のすべてが必要な理由はありますか? 関連:C ++ 11には「sto {short、unsigned short}」関数はありませんか?
96 c++  string  c++11  std 

2
宣言はstd名前空間に影響を与えることができますか?
#include <iostream> #include <cmath> /* Intentionally incorrect abs() which seems to override std::abs() */ int abs(int a) { return a > 0? -a : a; } int main() { int a = abs(-5); int b = std::abs(-5); std::cout<< a << std::endl << b << std::endl; return 0; } 出力は-5and 5になると思っていましたが、出力は-5and …
96 c++  std  reserved 

6
std :: initializer_listが組み込み言語ではないのはなぜですか?
std::initializer_listコア言語が組み込まれていないのはなぜですか? これはC ++ 11の非常に重要な機能であり、独自の予約済みキーワード(または同様のもの)がないように思えます。 代わりに、initializer_listそれはだだけで、特別な、暗黙の持っている標準ライブラリのテンプレートクラスのマッピング新しいからブレース-のinit-リスト {...}コンパイラによって処理の構文を。 最初は、このソリューションはかなりハックです。 これは、C ++言語への新しい追加が実装される方法ですか?コア言語ではなく、いくつかのテンプレートクラスの暗黙のロールによって? これらの例を検討してください: widget<int> w = {1,2,3}; //this is how we want to use a class 新しいクラスが選ばれた理由: widget( std::initializer_list<T> init ) これらのアイデアのいずれかに類似したものを使用する代わりに: widget( T[] init, int length ) // (1) widget( T... init ) // (2) widget( std::vector<T> init ) // (3) 古典的な配列、おそらくconstあちこちに追加できます …

4
std :: unique_ptrを宣言する方法とその用途は何ですか?
私はどのようにstd::unique_ptr機能するかを理解しようとし、そのためにこのドキュメントを見つけました。著者は次の例から始めます。 #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); // overloaded * and -> *uptr2 = 23.5; unique_ptr<std::string> ups (new std::string("hello")); int len=ups->size(); 私を混乱させているのは、この行にあることです unique_ptr<int> uptr …
95 c++  pointers  std  unique-ptr 


4
uint32、int32、uint64、int64などの型がstdlibヘッダーで定義されていますか?
私はソースコードがuint32、uint64などのタイプを使用しているのをよく見ます。アプリケーションコードでプログラマーがそれらを定義する必要があるのか​​、それとも標準のlibヘッダーで定義されるのかと思います。 アプリケーションのソースコードでこれらの型を使用する最良の方法は何ですか?
94 c  std 

4
cc1plus:エラー:g ++で認識されないコマンドラインオプション“ -std = c ++ 11”
私が使用してコンパイルしようとしているg++とのいずれか-std=c++11またはc++0xフラグ。 ただし、このエラーが発生します cc1plus: error: unrecognized command line option "-std=c++11" g ++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 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.

5
C ++で2つのstd :: setの共通部分を見つける方法
C ++で2つのstd :: setの共通部分を見つけようとしましたが、エラーが発生し続けます。 私はこれのために小さなサンプルテストを作成しました #include <iostream> #include <vector> #include <algorithm> #include <set> using namespace std; int main() { set<int> s1; set<int> s2; s1.insert(1); s1.insert(2); s1.insert(3); s1.insert(4); s2.insert(1); s2.insert(6); s2.insert(3); s2.insert(0); set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end()); return 0; } 後者のプログラムは出力を生成しませんs3が、次の値を持つ新しいセット(と呼びましょう)があることを期待しています。 s3 = [ 1 , 3 ] 代わりに、エラーが発生します。 test.cpp: In function ‘int main()’: test.cpp:19: …

5
「std :;」とは C ++で行う?
私は最近いくつかのコードを変更していて、関数内の1行に既存のバグを見つけました: std:;string x = y; このコードは引き続きコンパイルされ、期待どおりに動作しています。 このファイルはusing namespace std;であるため、文字列定義は機能しますstd::。そもそもこれは不要でした。 問題は、なぜstd:;コンパイルしているのか、そしてもしあれば、何をしているのか、です。
89 c++  std  colon 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.