为什么当我输入向量中的相同元素时向量会调整其大小

why vector resize its size when i take input same element in the vecotor

//这里如果我接受输入 n=5 然后插入 vec1 1,2,3,4, 5 然后它根据它的 大小在输出中只考虑 1,2,3,4 但是当我尝试在 vec1 1,2,2,2,3,4 中插入时,它的 输出 是 1,2,2,2,3,4 如何? 因为它的 大小 是 4.

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    cin>>n;
    vector<int> vec1;
    for (int i=0; i<n; ++i){
        cin>>i;
        vec1.push_back(i);
    }
    sort(vec1.begin(), vec1.end());
    vector<int> :: iterator it;
    for( it = vec1.begin(); it !=vec1.end(); it++)
        cout<<*it<<" ";
        cout<<vec1.size();

}

cin>>i 将覆盖您的循环变量(因此在您输入数字 >= n - 1 后循环终止)。

您需要使用不同的变量来获取您的输入。

int x;
cin >> x;
vec1.push_back(x);