从矢量中删除元素并更改大小

Moh*_*gue -1 c++ vector

我尝试从向量中删除元素,并且使用erase()方法工作正常,但在删除元素后,向量的大小仍然相同.

std::vector<int> myvector;
myvector.push_back (1);
myvector.push_back (2);
myvector.push_back (3);//here the size is 3
myvector.erase(myvector.begin()+1);//I think normally the size should be 2 after removing the element
Run Code Online (Sandbox Code Playgroud)

是否有一个功能可以做到这一点或我应该手动完成,我是c ++的新手我检查了文档,我没有找到解决方案.

Vla*_*cow 5

更改大小,然后使用成员函数erase删除向量的元素.如果你的意思是容量,那么它就不会改变.

这是一个示范计划

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> v { 1, 2, 3 };

    std::cout << "v.size() = " << v.size() << std::endl;
    for ( int x : v ) std::cout << x << ' ';
    std::cout << std::endl;

    v.erase( v.begin() + 1 );

    std::cout << "v.size() = " << v.size() << std::endl;
    for ( int x : v ) std::cout << x << ' ';
    std::cout << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是

v.size() = 3
1 2 3 
v.size() = 2
1 3 
Run Code Online (Sandbox Code Playgroud)