どうも、ちょげ(@chogetarou)です。
Vectorの末尾からN個の要素を削除する方法を紹介します。
方法
Vectorの後ろからN個の要素を削除する方法は、3つあります。
resize()
1つ目は、resize()を使う方法です。
まず、Vectorからresize()を呼び出します。
そして、resize()の引数に、Vectorのsize()を削除する要素数で引いた値を指定します。
//vect=任意のVector, n=削除する要素数
vect.resize(vect.size() - n);
上記のresize()は、Vectorの末尾からN個の要素を削除します。
使用例
#include <iostream>
#include <vector>
using namespace std;
int main(void){
vector<int> num = { 1, 2, 3, 4, 5, 6 };
int n = 3;
num.resize(num.size() - n);
for (int &i: num) {
cout << i << endl;
}
}
出力:
1
2
3
erase()
2つ目は、erase()を使う方法です。
まず、Vectorからerase()を呼び出します。
そして、erase()の第1引数にVectorのend()を削除する要素数で引いた値、第2引数にVectorのend()を指定します。
//vect=任意のVector, n=削除する要素数
vect.erase(vect.end() - n, vect.end());
上記のerase()は、Vectorの末尾からN個の要素を削除します。
使用例
#include <iostream>
#include <vector>
using namespace std;
int main(void){
vector<int> num = { 1, 2, 3, 4, 5, 6 };
int n = 3;
num.erase(num.end() - n, num.end());
for (int &i: num) {
cout << i << endl;
}
}
出力:
1
2
3
forループ
3つ目は、forループを使う方法です。
まず、削除する要素の数でforループします。
そして、forループの処理で、Vectorからpop_back()を呼び出します。
//vect=任意のVector, n=削除する要素数
for (int i = 0; i < n; i++){
vect.pop_back();
}
上記のforループは、Vectorの末尾からN個の要素を削除します。
使用例
#include <iostream>
#include <vector>
using namespace std;
int main(void){
vector<int> num = { 1, 2, 3, 4, 5, 6 };
int n = 3;
for (int i = 0; i < n; i++){
num.pop_back();
}
for (int &i: num) {
cout << i << endl;
}
}
出力:
1
2
3
まとめ
Vectorの後ろからN個の要素を削除する方法は、次の3つです。
- resize()を使う方法
vect.resize(vect.size() - n);
- erase()を使う方法
vect.erase(vect.end() - n, vect.end());
- forループを使う方法
コメント