どうも、ちょげ(@chogetarou)です。
std::copy()でVectorの末尾からN個の要素を取得する方法を紹介します。
方法

std::copy()でVectorの末尾からN個の要素を取得するには、3つの引数を使います。
まず、Vectorの変数を宣言します。
変数の宣言時、コンストラクタの引数に取得する要素数を指定します。
次に、copy()を呼び出します。
copy()の第1引数に対象のVectorのend()から取得する要素数を引いた値、第2引数に対象のVectorのend()を指定します。
cop()の第3引数に宣言した変数のbegin()を指定します。
//lastN=任意の変数名, vect=対象のVector, n=取得する要素数
vector<T> lastN(n);
copy(vect.end() - n, vect.end(), lastN.begin());
上記のcopy()は、宣言した変数にend()を呼び出したVectorの末尾からN個の要素を格納します。
使用例
#include <iostream>
#include <vector>
using namespace std;
int main(void){
vector<int> num = { 1, 2, 3, 4, 5, 6 };
int n = 3;
vector<int> lastN(n);
copy(num.end() - n, num.end(), lastN.begin());
for (int &i: lastN) {
cout << i << endl;
}
}
出力:
4
5
6
コメント