タグ付けされた質問 「c++」

C ++は汎用プログラミング言語です。もともとCの拡張として設計され、構文は似ていますが、現在は完全に異なる言語になっています。このタグは、C ++コンパイラでコンパイルされる(される)コードに関する質問に使用します。特定の標準リビジョン[C ++ 11]、[C ++ 14]、[C ++ 17]または[C ++ 20]などに関連する質問には、バージョン固有のタグを使用します。


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: …

4
C ++コードからC関数を呼び出す
C ++から呼び出したいC関数があります。extern "C" void foo()C関数がg ++を使用してコンパイルできなかったため、 " "のようなアプローチを使用できませんでした。ただし、gccを使用すると正常にコンパイルされます。C ++から関数を呼び出す方法はありますか?
90 c++  c  linux  extern-c 

5
libstdc ++を静的にリンクする:何か落とし穴はありますか?
Ubuntu12.10で構築されたC ++アプリケーションとGCC4.7のlibstdc ++を、かなり古いバージョンのlibstdc ++が付属しているUbuntu10.04を実行しているシステムにデプロイする必要があります。 現在、-static-libstdc++ -static-libgccこのブログ投稿で提案されているように、私はコンパイルしています:libstdc ++を静的にリンクします。著者は、libstdc ++を静的にコンパイルするときに、動的にロードされたC ++コードを使用しないように警告しています。これは、私がまだチェックしていないことです。それでも、これまでのところすべてが順調に進んでいるようです。Ubuntu10.04でC ++ 11の機能を利用できます。これは、私が求めていたものです。 この記事は2005年のものであり、おそらくそれ以来多くの変更が加えられていることに注意してください。そのアドバイスはまだ最新ですか?知っておくべき潜在的な問題はありますか?

6
condition_variable.notify_one()を呼び出す前にロックを取得する必要がありますか?
の使用について少し混乱していますstd::condition_variable。を呼び出す前unique_lockに、を作成する必要があることを理解しています。私は何を見つけることができない、私はまた、呼び出す前に独自のロックを取得する必要があるかどうかですか。mutexcondition_variable.wait()notify_one()notify_all() cppreference.comの例は矛盾しています。たとえば、notify_oneページは次の例を示しています。 #include <iostream> #include <condition_variable> #include <thread> #include <chrono> std::condition_variable cv; std::mutex cv_m; int i = 0; bool done = false; void waits() { std::unique_lock<std::mutex> lk(cv_m); std::cout << "Waiting... \n"; cv.wait(lk, []{return i == 1;}); std::cout << "...finished waiting. i == 1\n"; done = true; } void signals() { …

6
findメソッドを使用した後にstd :: mapを更新する方法は?
メソッドstd::mapを使用した後にキーの値を更新するにはどうすればよいfindですか? 私はこのようなマップとイテレータ宣言を持っています: map <char, int> m1; map <char, int>::iterator m1_it; typedef pair <char, int> count_pair; マップを使用して、文字の出現回数を保存しています。 Visual C ++ 2010を使用しています。
90 c++  map  stl  stdmap 

11
C ++を使用して実行時にメモリ使用量を取得するにはどうすればよいですか?
プログラムの実行時にメモリ使用量VIRTとRESを取得し、それらを表示する必要があります。 私がこれまでに試したこと: getrusage(http://linux.die.net/man/2/getrusage) int who = RUSAGE_SELF; struct rusage usage; int ret; ret=getrusage(who,&usage); cout<<usage.ru_maxrss; しかし、私は常に0を取得します。

6
C ++の関数内で構造とクラスを定義できるのはなぜですか?
私は誤ってC ++でこのようなことをしましたが、それは機能します。なぜ私はこれを行うことができますか? int main(int argc, char** argv) { struct MyStruct { int somevalue; }; MyStruct s; s.somevalue = 5; } これを行った後、私は昔、C ++用の貧乏人の関数型プログラミングツールの一種として、このトリックについてどこかで読んだことを思い出しましたが、なぜこれが有効なのか、どこで読んだのか思い出せません。 どちらの質問への回答も大歓迎です! 注:質問を書いているとき、この質問への参照はありませんでしたが、現在のサイドバーがそれを指摘しているので、参照用にここに置きます。どちらにしても、質問は異なりますが、役立つ場合があります。

8
webRTCとサーバーベースのピア接続を使用してWebカメラとオーディオを録音する方法
ユーザーのウェブカメラとオーディオを録音して、サーバー上のファイルに保存したいと思います。これらのファイルは、他のユーザーに提供できるようになります。 再生に問題はありませんが、コンテンツを記録するのに問題があります。 私の理解では、getUserMedia.record()関数はまだ作成されていません。これまでのところ、提案のみが行われています。 PeerConnectionAPIを使用してサーバー上にピア接続を作成したいと思います。これは少しハッキーだと思いますが、サーバー上にピアを作成し、クライアントピアが送信する内容を記録できるはずだと思います。 これが可能であれば、このデータをflvまたはその他のビデオ形式で保存できるはずです。 私の好みは、実際にはWebカメラとオーディオのクライアント側を記録して、アップロード前の最初の試行が気に入らなかった場合にクライアントがビデオを再記録できるようにすることです。これにより、ネットワーク接続の中断も可能になります。データをキャンバスに送信することで、Webカメラから個々の「画像」を記録できるコードを見たことがあります。これはすばらしいことですが、音声も必要です。 これが私がこれまでに持っているクライアント側のコードです: <video autoplay></video> <script language="javascript" type="text/javascript"> function onVideoFail(e) { console.log('webcam fail!', e); }; function hasGetUserMedia() { // Note: Opera is unprefixed. return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); } if (hasGetUserMedia()) { // Good to go! } else { alert('getUserMedia() is not supported …

4
マクロ引数を文字列リテラルとして使用するにはどうすればよいですか?
変数名の文字列リテラル表現と変数自体の両方を関数に渡すマクロを作成する方法を理解しようとしています。 たとえば、次の関数が与えられます。 void do_something(string name, int val) { cout << name << ": " << val << endl; } これを実行できるように、マクロを作成したいと思います。 int my_val = 5; CALL_DO_SOMETHING(my_val); どちらが印刷されますか: my_val: 5 私は次のことを試みました: #define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR); ただし、ご想像のとおり、引用符内のVARは置き換えられず、文字列リテラル「VAR」として渡されるだけです。したがって、マクロ引数を文字列リテラル自体に変換する方法があるかどうかを知りたいと思います。



8
Windowsレジストリから値を読み取る方法
レジストリ値(HKEY_LOCAL_MACHINE \ blah \ blah \ blah \ fooなど)のキーが与えられた場合、どうすればよいですか? そのようなキーが存在することを安全に判断します。 プログラムで(つまりコードを使用して)その値を取得します。 私はレジストリに何かを書き戻すつもりはまったくありません(私がそれを助けることができれば私のキャリアの期間中)。したがって、レジストリに誤って書き込んだ場合、光速で爆発する体内のすべての分子についての講義をスキップできます。 C ++での回答を優先しますが、ほとんどの場合、値を取得するための特別なWindowsAPIの呪文が何であるかを知る必要があります。
90 c++  windows  winapi  registry 


10
CMakeはC ++でリンカー言語を判別できません
Visual Studio2010とCygwinの両方を使用してWindows7x64でcmakehello worldプログラムを実行しようとしていますが、どちらも機能しないようです。私のディレクトリ構造は次のとおりです。 HelloWorld -- CMakeLists.txt -- src/ -- -- CMakeLists.txt -- -- main.cpp -- build/ cd build続いて、を実行するcmake ..と、エラーが発生します。 CMake Error: CMake can not determine linker language for target:helloworld CMake Error: Cannot determine link language for target "helloworld". ただし、ファイルシステムとsrc/CMakeLists.txtすべての両方でmain.cppの拡張子をmain.cに変更すると、期待どおりに機能します。これは、Visual Studioコマンドプロンプト(Visual Studio Solution Generator)とCygwinターミナル(Unix Makefiles Generator)の両方から実行される場合です。 このコードが機能しない理由はありますか? CMakeLists.txt PROJECT(HelloWorld C) cmake_minimum_required(VERSION …
90 c++  c  cmake 

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