値[0,1,2,3,4,5,6,7,8,9]のベクトルを仮定します。必ずしも連続していない値を参照するベクトルを作成するにはどうすればよいですか? [3,4,7,9]、すなわちある指数で与えられ、STLを使用する。ベクトルの特定の要素を含むサブベクトルの作成
答えて
あなたは例えば、変換としてこれを表現することができます。:
#include <valarray>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
template <typename T>
void pick(std::vector<T>& result, const std::vector<T>& in, const std::vector<typename std::vector<T>::size_type>& s) {
result.reserve(s.size());
std::transform(s.begin(), s.end(), std::back_inserter(result),
[&in](typename std::vector<T>::size_type idx) {
return in.at(idx);
});
}
int main() {
const std::vector<int> arr={0,1,2,3,4,5,6,7,8,9,10};
std::vector<int> result;
pick(result, arr, {3,4,7,9});
}
を私はラムダを使用していますが、このためにstd::bind
か(現在は非推奨)std::bind2nd
を使用することができます。 C++ 11のstd::bind
と
例はpick
ます:
template <typename T>
void pick(std::vector<T>& result, const std::vector<T>& in, const std::vector<typename std::vector<T>::size_type>& s) {
result.reserve(s.size());
std::transform(s.begin(), s.end(), std::back_inserter(result),
std::bind(static_cast<const T& (std::vector<T>::*)(typename std::vector<T>::size_type) const>(&std::vector<T>::at), in, std::placeholders::_1));
}
それはしかし真剣に醜いだからのthe need to cast the member function pointer to resolve the overloadat
(非constバージョン対のconst)の。
はい、私も 'std :: bind2nd'と考えていましたが、' std :: transform'はとてもいいです。美しい解決策! –
上記は**それを超過している非常に良い例です**。 –
@refpよく、これはとても良い例です。私はそれに固執する。 –
- 1. 特定の入力要素を含む特定のdivクラス要素へのスタイル
- 2. 所定数の特定の要素を持つベクトルを作成する
- 3. ベクトルのサブベクトルのグループ化
- 4. ベクトルのサブベクトルの和R
- 5. 特定の要素(カード)を含むタプルの削除
- 6. 特定のテキストを含むweb要素を選択
- 7. xpath特定の要素を含む項目をフィルタリングする
- 8. xpath式 - 親が特定のテキストを含む要素を選択
- 9. WebDriverでテキストを含む特定の要素を取得する
- 10. 特定の子要素を含む親要素を見つける
- 11. 特定の値を含む要素のみで既存の配列を作成する
- 12. 錬金術CMS:要素のリストを含む要素を作成する
- 13. インライン要素を含むウェブサイトのランディングページを作成する
- 14. 親子要素を含むXMLフィードの再作成
- 15. 不変のベクトルの不変のサブベクトル
- 16. C++ベクトル要素の消去と新しいベクトルの作成
- 17. 特定のラスタ値を含むポリゴンを作成する
- 18. 特定の列に1を含む行列を作成する
- 19. 動的オブジェクトへのポインタを含む他のベクトルを含むベクトル
- 20. 別のベクトルを使ってベクトルの特定の要素を反復する
- 21. ベクトルの特定の要素の平均を取得する
- 22. 特定の要素を含む最後の配列を取得するには?
- 23. 特定の要素を持たないオブジェクトのみを含むクエリ - App Engine
- 24. SQLは、特定の値を含む要素のセットをチェックします。
- 25. 特定のインデックスにあるベクトルの要素を削除する
- 26. アルゴリズムでベクトル内の特定の要素を消去する
- 27. 特定のnode_modulesを含む
- 28. R:すべてのキーボード定数を含むベクトルを作成する
- 29. Pythonのリストから特定の単語を含む特定の要素を選択する
- 30. リンクテキストにhtml要素を含むajax actionlinkを作成
奇妙なことに、http://stackoverflow.com/questions/9705441と似ていますが、非順次です。 – Flexo
同じソリューションを適用できますか?その質問はちょうどそれから飛び出しました。私は2日の時間で尋ねるなら、あなたはまだそれを言うだろうか? –
類似しているが、異なるソリューションを必要とするには十分に異なる。 – juanchopanza