値[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. 所定数の特定の要素を持つベクトルを作成する
- 2. 特定の子要素を含む親要素を見つける
- 3. WebDriverでテキストを含む特定の要素を取得する
- 4. xpath特定の要素を含む項目をフィルタリングする
- 5. ベクトルのサブベクトルの和R
- 6. 錬金術CMS:要素のリストを含む要素を作成する
- 7. 親子要素を含むXMLフィードの再作成
- 8. 別のベクトルを使ってベクトルの特定の要素を反復する
- 9. 特定の要素を持たないオブジェクトのみを含むクエリ - App Engine
- 10. SQLは、特定の値を含む要素のセットをチェックします。
- 11. Pythonのリストから特定の単語を含む特定の要素を選択する
- 12. リンクテキストにhtml要素を含むajax actionlinkを作成
- 13. ElasticSearch、特定の配列要素を含む文書を検索する方法
- 14. 300k +文字列を含むリスト内の重複要素を特定する
- 15. 特定のhtml値を持つ子要素を含む要素を取得するJquery
- 16. n個の要素を含むベクトルからm個の要素をランダムに選択します。
- 17. 特定の要素
- 18. ビデオ要素を含むWebベースのフルスクリーンスライドショー
- 19. jQuery:xを含む最高レベルの要素
- 20. ベクトル要素の再帰的操作
- 21. 私は要素のベクトルを持つベクトル
- 22. XMLシリアル化 - 特定のタイプの子要素のリストを作成する
- 23. ptr_vector <an_abstract_class>を含むクラスのベクトルを作成できません
- 24. 要素に特定のテキストが含まれている場合
- 25. 特定のテキストを含むdiv要素は、どのように私は、親のdiv jqueryの
- 26. 繰り返し要素を含むフォームを作成する方法
- 27. 別のベクトルを含む構造体のベクトル
- 28. VB.NET特定のファイルに書き込む(本質的に新しいXML要素を作成する)
- 29. 別のベクトルを含む構造体のベクトルをバイナリファイルに書き込む
- 30. リスト要素からベクトルを作るR
奇妙なことに、http://stackoverflow.com/questions/9705441と似ていますが、非順次です。 – Flexo
同じソリューションを適用できますか?その質問はちょうどそれから飛び出しました。私は2日の時間で尋ねるなら、あなたはまだそれを言うだろうか? –
類似しているが、異なるソリューションを必要とするには十分に異なる。 – juanchopanza