問題タブ [stdarray]

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.

0 投票する
1 に答える
1442 参照

c++ - 「アンパック」 std::array関数の引数として

これは、関数の引数としてタプルを展開 (または「展開」) する方法の非常に優れた (私のものではない) 例です。

次に、これを次のように使用できます。

ライブバージョン

std::arrayタプルにとても似ているので、どうやって同じことをすることができるかをさまよっていました。std::get<N>で動作するstd::arrayので、このソリューションを変更するのは簡単だと思いました。しかし、このようなものは機能しません:

パーツの為お譲り致しstd::result_of<FT(Arg&&)>::typeます。引数の型Arg&&が間違ってresult_ofいて、フィールドがありませんtype。タプルArgs&&...が拡張されましたが、今では「繰り返される」必要がありますIresult_of返された型を差し引くことができるようにこれを行う方法はありますか?

また、「アンパック」するツールがあり、tuple再帰的に(おそらく を使用して)構造などarrayを「アンパック」することは可能でしょうか?とが枝で、他の種類が葉であるある種の木?enable_iftuple<array<int, 2>, tuple<array<double,3>, ...tuplearray

0 投票する
3 に答える
153 参照

c++ - std::accumulate の無効な変換

静的関数 (フィールドごとの最小フィールド)を使用してN次元内の点を表すクラスがあります。min

私が書くとき、すべてがうまくいきます

しかしstd::accumulate、配列で使用しようとすると

エラーが発生します:

std::accumulateこれは、実装が私のコンストラクターと互換性がないという問題ですか?

0 投票する
2 に答える
1342 参照

c++ - std::サイズがゼロの配列

std::array<int,0>サイズがゼロの配列を持つとはどういう意味ですか?

これを投稿する前に SO で同様の質問をしましたが、これらの質問はすべて単純な配列型と C 言語に関するものであり、ほとんどが違法であると述べています。ただし、C++ ではarray<int,0>許可されています。

cppreference.comによると

長さゼロの配列 (N == 0) には特殊なケースがあります。その場合、array.begin() == array.end()これは一意の値です。サイズがゼロの配列に対するfront()orの呼び出しの効果は未定義です。back()

なぜ違法と定義されないのですか?

0 投票する
1 に答える
574 参照

c++ - C++11 配列の初期化でコピー コンストラクターが呼び出されない

サイズに合わせてテンプレート化された配列を使用する小さなクラスを作成しています。ここにいくつかのコードがあります...

.hpp

.cc

combo{sequence}コンストラクタのメンバ初期化では、型しか受け付けないのでイニシャライザとして使えませんsf::Keyboard::Key。を要求している場合、これは理にかなっていますinitializer_listが、これは奇妙に思えます。他の標準コンテナーでは、{} 表記を使用してコピー コンストラクターを呼び出すことができます。これはとの癖std::arrayですか?それとも私のclangのバグですか?

念のため、私のclangバージョンは次のとおりです。

0 投票する
0 に答える
34 参照

c++ - 2d std::array を関数 c++ に渡す

コンストラクター クラスに 2 次元配列を渡そうとしています。

私はいくつかの検索を行い、テンプレートを使用しようとしました..しかし、動作しません

しかし、私のコードは次のエラーを生成します:

メインのコード:

そしてここにコンストラクタのコード:

0 投票する
1 に答える
140 参照

c++ - ベクトルを変換/再解釈する効率的な方法ベクトルとして>

vector<array<T, N>>&を返す別のメソッドの結果を受け取るメソッド(テンプレート)を呼び出したいvector<T>

vector<T>a を aとして再解釈する効率的な (O(1)) 方法はありvector<array<T,1>>ますか? それは可能ですか/それに対して安全reinterpret_castですか?

0 投票する
2 に答える
1538 参照

arrays - 循環バッファ内の要素をリセットする

C++ で未指定の型を取る循環バッファーを実装するように依頼されました。ジェネリック型はプリミティブ型であると想定しています。(または、非プリミティブ型を考慮する必要がありますか?) バッファーの場合、基本的な配列を使用しています。たとえば、T[]newおよびdeleteを使用して、初期化と破棄を行います。

バッファ クラスを実装し、予想される出力で整数に対してテストしました。しかし、それは動作しませんstd::string。問題は、バッファーをポップするときに要素をゼロに設定してクリアすると、コンパイラーがそうすることがあいまいであると不平を言うことです。そのため、要素をクリアするための一般的な方法が必要であり、std::arrayこの機能がサポートされている可能性があると考えていましたが、ドキュメントで見つけることができません。

std::array または基本配列の要素をクリアする一般的な方法はありますか、それとも std::allocator が私の唯一のオプションですか? または、完全に間違った方向に進んでいる場合、 pop メソッドを実装して最初の要素をリセットし、フロント インデックスを次の要素のインデックスにインクリメントする方法を教えてください。

前もって感謝します!

それが役立つ場合、以下は私の関連コードです:

0 投票する
2 に答える
515 参照

c++ - std::array の std::array へのインデックス付け

C++ での配列の配列のインデックス付けについて、いくつかの混乱があります。

私は持っている:

インデックス作成を行うときは、次のことを前提としています。

したがって、最初にouter_index配列に入り、SIZE_OUTER次に内部インデックスが続きます。

本当?