C++でvectorの末尾から要素を削除します
この投稿では、C++でvectorの末尾から要素を削除する方法について説明します。このソリューションでは、vectorサイズを効果的に1つ減らす必要があります。
1.使用する std::vector::erase
vectorから要素を削除するための標準的な解決策は、 std::vector::erase
関数。要素を削除する必要がある位置にイテレータを使用します。vectorの最後にある要素を削除するには、vectorの最後の要素を指すイテレータを渡します。
コードは次のようになります。ご了承ください std::vector::end
vectorの最後の要素にイテレータを返すのではなく、最後の要素を1つ超えたイテレータを返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <vector> int main() { std::vector<int> vec = {1, 2, 3, 4}; vec.erase(vec.end() - 1); for (int &i: vec) { std::cout << i << ' '; } return 0; } |
出力:
1 2 3
2.使用する std::vector::pop_back
vectorから最後の要素を具体的に削除するには、 std::vector::pop_back
関数。次のように呼び出すことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <vector> int main() { std::vector<int> vec = {1, 2, 3, 4}; vec.pop_back(); for (int &i: vec) { std::cout << i << ' '; } return 0; } |
出力:
1 2 3
3.使用する std::vector::resize
The std::vector::resize
関数は、指定された数の要素を含むようにvectorのサイズを変更します。サイズがvectorのサイズよりも小さい場合、指定されたサイズを超えるすべての要素が削除され、破棄されます。これは、次のようにvectorの末尾から要素を削除するために使用できますが、コンテキストが明確になるわけではありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <vector> int main() { std::vector<int> vec = {1, 2, 3, 4}; vec.resize(vec.size() - 1); for (int &i: vec) { std::cout << i << ' '; } return 0; } |
出力:
1 2 3
これで、C++のvectorの末尾から要素を削除することができます。