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

プログラミングでは、タプルは単純な*製品タイプ*であり、タイプの順序付けられたコレクションを表します。

4
「タプル」と「タイ」を介して比較演算子を実装することは良い考えですか?
(注:tupleおよびtieBoostまたはC ++ 11から取得できます。)厳密な弱い順序付けのように、すべての重要なものがそのデータ型に対してすでに行われているため 、2つの要素のみを含む小さな構造体を書き込むときstd::pair、operator<。 ただし、欠点は、ほとんど役に立たない変数名です。私がそれを作成したtypedefとしても、特に両方が同じタイプである場合は特に、2日後に何が何firstであったかsecond正確には覚えていません。これは、3つ以上のメンバーの場合はさらに悪化します。これは、入れ子にするpairことでほとんど問題になります。 そのための他のオプションはtuple、BoostまたはC ++ 11のいずれかからですが、実際には見た目が良く、明確ではありません。そこで、必要な比較演算子を含め、自分で構造体を書くことに戻ります。 特にはoperator<非常に扱いにくい場合があるので、次のように定義された操作に依存するだけで、この混乱全体を回避することを考えましたtuple。 の例operator<、例えば厳密な弱い順序付け: bool operator<(MyStruct const& lhs, MyStruct const& rhs){ return std::tie(lhs.one_member, lhs.another, lhs.yet_more) < std::tie(rhs.one_member, rhs.another, rhs.yet_more); } (tieは、渡された引数からtupleのT&参照を作成します。) 編集:@DeadMGからプライベートに継承するという提案tupleは悪いことではありませんが、かなりの欠点がありました。 事業者が独立している場合(おそらく友人)、私は公に継承する必要があります キャストを使用すると、関数/演算子(operator=特に)を簡単にバイパスできます tie解決策により、注文に関係のない特定のメンバーを除外することができます この実装に考慮する必要がある欠点はありますか?

12
タプルからのJavaScript変数の割り当て
Python 2やPython 3などの他の言語では、値を定義してタプル変数に割り当て、次のように値を取得できます。 tuple = ("Bob", 24) name, age = tuple print(name) #name evaluates to Bob print(age) #age evaluates to 24 JavaScriptに似たものはありますか?または、配列で醜い方法を実行する必要がありますか? tuple = ["Bob", 24] name = tuple[0] //name Evaluates to Bob age = tuple[1] //age Evaluates to 24 JavaScript 5でPythonタプルをシミュレートするより良い方法はありますか? 更新: ES6に関する回答を参照してください。これは、新しいプロジェクトではCoffeeScriptよりも優先されます。


12
C ++タプルと構造体
std::tupleとデータのみの使用に違いはありstructますか? typedef std::tuple<int, double, bool> foo_t; struct bar_t { int id; double value; bool dirty; } 私がオンラインで見つけたものから、2つの大きな違いがあることがわかりました。1つstructは読みやすく、もう1つはtuple使用できる多くの汎用関数を持っていることです。パフォーマンスに大きな違いはありますか?また、データレイアウトは相互に互換性がありますか(交換可能にキャストされます)?
95 c++  struct  tuples 

13
タプルが解決するために設計された要件は何ですか?
タプルの新しいC#機能を見ています。気になるのですが、タプルが解決するために設計された問題は何ですか? アプリでタプルを何に使用しましたか? 更新 これまでの回答に感謝します。頭の中で真っ直ぐになっているかどうか確認してみましょう。タプルの良い例が座標として指摘されています。これは正しく見えますか? var coords = Tuple.Create(geoLat,geoLong); 次に、タプルを次のように使用します。 var myLatlng = new google.maps.LatLng("+ coords.Item1 + ", "+ coords.Item2 + "); あれは正しいですか?
94 c#  tuples 

3
2番目のパラメーターに基づいてタプルを並べ替える
次のようなタプルのリストがあります。 ("Person 1",10) ("Person 2",8) ("Person 3",12) ("Person 4",20) 私が作成したいのは、タプルの2番目の値で昇順でソートされたリストです。したがって、L [0]は("Person 2", 8)ソート後にする必要があります。 これどうやってするの?Python3.2.2の使用それが役立つ場合。
93 python  sorting  tuples 


5
scalaタプルの解凍
私はこの質問がさまざまな方法で何度も出てきたことを知っています。しかし、それは私にはまだはっきりしていません。以下を達成する方法はありますか? def foo(a:Int, b:Int) = {} foo(a,b) //right way to invoke foo foo(getParams) // is there a way to get this working without explicitly unpacking the tuple?? def getParams = { //Some calculations (a,b) //where a & b are Int }

8
Pythonでタプルのリストを検索する方法
だから私はこのようなタプルのリストを持っています: [(1,"juca"),(22,"james"),(53,"xuxa"),(44,"delicia")] 数値が何かと等しいタプルのこのリストが必要です。 だから私がsearch(53)それをするならそれはのインデックス値を返すでしょう2 これを行う簡単な方法はありますか?
90 python  search  list  tuples 



13
Scalaリストをタプルに変換しますか?
(たとえば)3つの要素を持つリストをサイズ3のタプルに変換するにはどうすればよいですか? たとえば、私が持っていてval x = List(1, 2, 3)、これをに変換したいとし(1, 2, 3)ます。これどうやってするの?
88 list  scala  tuples 


7
LinqSelectでタプルを作成する
私はC#と.NET Framework 4.5.1を使用して、Entity Framework6.1.3を使用してSQLServerデータベースからデータを取得しています。 私はこれを持っています: codes = codesRepo.SearchFor(predicate) .Select(c => new Tuple<string, byte>(c.Id, c.Flag)) .ToList(); そして、それを実行すると、次のメッセージが表示されます。 LINQ to Entitiesでは、パラメーターのないコンストラクターと初期化子のみがサポートされています。 私が見つけたすべての例はほとんどこのようなものであるため、タプルをどのように作成する必要があるのか​​わかりません。 私はこれを試しました: codes = codesRepo.SearchFor(predicate) .Select(c => Tuple.Create(c.Id, c.Flag)) .ToList(); そして、このエラーが発生します: LINQ to Entitiesは、メソッド 'System.Tuple`2 [System.String、System.Byte] Create [String、Byte](System.String、Byte)'メソッドを認識せず、このメソッドをストア式に変換できません。 問題はどこだ?

10
プリティプリントstd :: tuple
これは、プリティプリントSTLコンテナに関する以前の質問のフォローアップであり、非常にエレガントで完全に一般的なソリューションを開発することができました。 この次のステップではstd::tuple<Args...>、可変個引数テンプレートを使用して、のプリティプリントを含めたいと思います(したがって、これは厳密にC ++ 11です)。のためにstd::pair<S,T>、私は単に言う std::ostream & operator<<(std::ostream & o, const std::pair<S,T> & p) { return o << "(" << p.first << ", " << p.second << ")"; } タプルを印刷するための類似の構造は何ですか? テンプレート引数スタックをアンパックし、インデックスを渡し、SFINAEを使用して最後の要素に到達したことを検出しようとしましたが、成功しませんでした。壊れたコードであなたに負担をかけないでください。問題の説明は、うまくいけば十分に簡単です。基本的に、次の動作が必要です。 auto a = std::make_tuple(5, "Hello", -0.1); std::cout << a << std::endl; // prints: (5, "Hello", -0.1) 前の質問と同じレベルの一般性(char / wchar_t、ペア区切り文字)を含めることのボーナスポイント!

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