タイプ std::pair の要素を持つ std::vector があります。いくつかのアルゴリズムでは、2 つの反復子 (範囲) を返すため、その範囲内のすべての要素を取得し、ペアの最初のエントリを別のベクトルにコピーしたいと考えています。
std::vector< pair<double, int> > data;
std::vector<double> data2;
std::vector< pair<double, int> >::iterator it1, it2;
for (;it1!=it2; it1++)
{
data2.push_back(it1->first);
}
ループを使用するとそれができますが、それを行うための簡単な stl アルゴリズムがあるかどうか疑問に思います。データサイズがかなり大きい場合、上記の操作が何度も繰り返されるため、ループを使用するとかなり遅くなります。