問題タブ [valarray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - valarray rvalue に対する C++ の範囲ベースの for ループが機能しない
一時的な valarray を繰り返し処理したいのですが、うまくいきません。ここに私の(動かない)コードがあります:
以下は、のようなオブジェクトを定義したくないことを除いて、私が達成したいことの最小限の実例ですtemp_array
。
私のコンパイラは g++ バージョン 4.8.5 (Red Hat 4.8.5-4) です。-std=c++0x フラグを付けてコンパイルしています。
for (auto&& i : temp_array)
andなどの他の構文を試しましたがfor (int const & i : temp_array)
、うまくいきません。
c++ - valarray はその要素を分割します
valarray を最初の要素で除算すると、最初の要素のみが 1 になり、他の要素は元の値を保持します。
実際の出力は次のとおりです。
予想される出力は次のとおりです。
実際の出力が期待どおりにならないのはなぜですか?
-std=c++11 で g++(4.8.1) を使用しています
c++ - 異なるタイプの valarray の乗算
1 つがdouble型で 2 つ目がintの場合、2 つのvalarrayを乗算できないことに非常に驚いています。
何故ですか?
コンパイラ エラー:
g ++ コンパイラとmsvc++コンパイラの両方で同じです。
c++ - 標準ライブラリを使用したスライスのスライス
標準ライブラリにスライスを可能にする機能はありますか、std::slice
それとも次のようなものを書く必要がありますか
自分で?
c++ - C/C++ での 2 つの配列の要素ごとの乗算
2 つの配列の要素ごとの乗算を実行したいのですが、どちらも複合型ですが、次のエラー メッセージが表示されます。
エラーを返す関数:
fft と ifft は次のとおりです。
ここに私の主な機能があります:
c++ - 引数 1 を 'float *' から 'CArray &' に変換できません
このデータで指定された配列にFFT (この rosettacode.org FFT の C++ 実装: またはC 実装void fft(CArray &x) { ... }
を使用する必要がありますか?)を適用しようとしています:
私がする時:
私は得る:
この種のエラーを解決するにはどうすればよいですか?
c++ - C++ の複素数の Valarray の最上位要素 (最上位実部)
C++ で複素数の Valarray の最高の要素を出力するにはどうすればよいですか?
このコードを試してみましたが、エラー メッセージが返されます
出力:
私が間違っていることは何ですか?
コードを少し変更したコードの 2 番目のバージョン。今度は、Valarray の最上位の要素に対応するすべてのインデックスを取得したいと思います。この場合、要素 {9,0} に対応するすべてのインデックスを取得します。
注:「最高の要素」とは、実部が最も高い要素を意味します
新しいコード:
次のエラーが表示されます: 出力:
c++ - 複素数の valarray にスカラーを掛ける
valarray<double>
スカラーで乗算できます。ただし、 a にスカラーを掛けようとするとエラーが発生しますvalarray<complex<double>>
。綺麗にできる方法はないか考え中です。問題の再現は次のとおりです。
生成しError C2784: 'std::complex<_Other> std::operator *(const std::complex<_Other> &,const std::complex<_Other> &)': could not deduce template argument for 'const std::complex<_Other> &' from 'std::vector<std::complex<double>,std::allocator<_Ty>>'
ます。
そのため、独自の関数を作成して、それが実行できるかどうかを確認し、次のように動作することを試みました:
しかし、この実装は非常に醜いコードになるため、valarray.h を調べたところ、* オーバーロード定義が見つかりました。
テンプレートに関する私の知識は非常に限られていますが、このクラスを拡張することは可能ですか? これが私の試みです:
その結果Error C2039 '*': is not a member of 'std::valarray<std::complex<double>>'
コードの最初の行が機能するようにする方法v1 * 2.0
や、密接な妥協をする方法はありますか?