double []の内容を借用するstd :: vector <double>の標準的な方法

バトシェバ

既知のサイズのコンテンツstd::vector<double>借用できるようにするために使用できるC ++(できればC ++ 11)標準準拠のイディオムはありdouble[]ますか?

プロトタイプを備えた関数(実際には、オプティマイザーからのコールバックを装ったファンクター)があります。

double MyFunctorClass::operator()(double s[]) const;

MyFunctorClassまたm_size、の要素の数を明らかにしますs)。

const std::vector<double>&入力として受け取る関数を呼び出したい

解決策の1つは、std::vector<double>メンバー変数を作成し、何らかの方法でdouble[]データをそのデータ領域にstd::vector切り替え、関数を呼び出してから、呼び出し元に戻すことです。パフォーマンス上の懸念からコピーしたくありません。これは目的関数です。何か案は?

Mateusz Grzejek

いいえ、それはできません。

std::vector ヒープに格納されたコンテンツにスペースを割り当てる(そしてそれを所有する)ので、独自のメモリを使用するように強制することはできません。

「独自のメモリを使用する」とは、「有効なコンテンツを含む独自のメモリを意味します。これは、明示的に指定しない限り、保存され、コンテナによって変更されることはありません」。もちろん、「allocator」パラメータをオーバーライドすることで独自のメモリ割り当てポリシーを定義できますが、この場合は解決策ではありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Double.VectorとVector <double>の違い

分類Dev

vector <vector <double >>のostream_iterator

分類Dev

初期化時に「std :: vector <double>」を「double」に変換する方法

分類Dev

非標準値のdouble配列を初期化する最速の方法

分類Dev

Javaの「double、Double、HashSet」

分類Dev

std :: vector <boost :: optional <double >>をstd :: vector <double>に変換します

分類Dev

エラー「std :: count_if()を使用する場合、「std :: vector <double、std :: allocator <double>>」から「double *」への既知の変換はありません」

分類Dev

boost :: asio :: bufferでstd :: vector <std :: complex <double >>のような引数を使用します

分類Dev

Converting float vector to double

分類Dev

vector <vector <double >>演算子

分類Dev

double.ToString();の標準フォーム形式を変更する方法。

分類Dev

ファイルからvector <double>を読み取る最速の方法

分類Dev

std :: vector <std :: vector <std :: string >>をstd :: vector <std :: vector <double >>に変換します

分類Dev

std :: accumulate関数がvector <double>の間違った合計を表示するのはなぜですか?

分類Dev

std :: vector <std :: vector <double >>をvoid *に適切にキャストし、それを再解釈する方法は?

分類Dev

事前に割り当てられたvector <complex <double >>を2倍の長さのvector <double>として再利用します

分類Dev

Converting std::vector<std::vector<std::string>> to std::vector<std::vector<double>>

分類Dev

double []のRAMを使用するList <Double>?

分類Dev

vector <double>をvector <string>に変換します(エレガントな方法)

分類Dev

std :: pair <vector <int>、double>のイニシャライザリスト

分類Dev

vector <double> *をvector <int>にポイントする方法はありますか?

分類Dev

doubleのJSlider

分類Dev

HashMapのDouble

分類Dev

javascriptのdouble値

分類Dev

assertEquals(Double、Double)とassertEquals(double、double、delta)のJUnitの違い

分類Dev

Funcの負の値を取る<double []、double>

分類Dev

std :: vector <double>を初期化する際のセグメンテーション違反

分類Dev

double []をDouble []に変換する方法は?

分類Dev

vector <pair <double、double >>問題を引き起こす

Related 関連記事

  1. 1

    Double.VectorとVector <double>の違い

  2. 2

    vector <vector <double >>のostream_iterator

  3. 3

    初期化時に「std :: vector <double>」を「double」に変換する方法

  4. 4

    非標準値のdouble配列を初期化する最速の方法

  5. 5

    Javaの「double、Double、HashSet」

  6. 6

    std :: vector <boost :: optional <double >>をstd :: vector <double>に変換します

  7. 7

    エラー「std :: count_if()を使用する場合、「std :: vector <double、std :: allocator <double>>」から「double *」への既知の変換はありません」

  8. 8

    boost :: asio :: bufferでstd :: vector <std :: complex <double >>のような引数を使用します

  9. 9

    Converting float vector to double

  10. 10

    vector <vector <double >>演算子

  11. 11

    double.ToString();の標準フォーム形式を変更する方法。

  12. 12

    ファイルからvector <double>を読み取る最速の方法

  13. 13

    std :: vector <std :: vector <std :: string >>をstd :: vector <std :: vector <double >>に変換します

  14. 14

    std :: accumulate関数がvector <double>の間違った合計を表示するのはなぜですか?

  15. 15

    std :: vector <std :: vector <double >>をvoid *に適切にキャストし、それを再解釈する方法は?

  16. 16

    事前に割り当てられたvector <complex <double >>を2倍の長さのvector <double>として再利用します

  17. 17

    Converting std::vector<std::vector<std::string>> to std::vector<std::vector<double>>

  18. 18

    double []のRAMを使用するList <Double>?

  19. 19

    vector <double>をvector <string>に変換します(エレガントな方法)

  20. 20

    std :: pair <vector <int>、double>のイニシャライザリスト

  21. 21

    vector <double> *をvector <int>にポイントする方法はありますか?

  22. 22

    doubleのJSlider

  23. 23

    HashMapのDouble

  24. 24

    javascriptのdouble値

  25. 25

    assertEquals(Double、Double)とassertEquals(double、double、delta)のJUnitの違い

  26. 26

    Funcの負の値を取る<double []、double>

  27. 27

    std :: vector <double>を初期化する際のセグメンテーション違反

  28. 28

    double []をDouble []に変換する方法は?

  29. 29

    vector <pair <double、double >>問題を引き起こす

ホットタグ

アーカイブ