为什么当我输入向量中的相同元素时向量会调整其大小
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);
//这里如果我接受输入 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);