如果定义好了vector A(n) 再用pushback方法 这时候的vector A的实际长度为2n!!!!!!!

  #include <iostream>
  #include <vector>
  #include <iterator>
  #include <algorithm>

  using namespace std;

  int main (){
      int n;
      cin  >> n;
      vector<int> A,B;
      for(int i = 0; i < n; i++){
          int a;
          cin>> a;
          A.push_back(a);
      }
      sort(A.begin(),A.end());
      B.push_back(A[0]);
      for(int i = 1; i < n; i++){
          if(A[i] != A[i -1]) B.push_back(A[i]);
      }
      n = B.size();
      if(n ==1) cout << "0 0 0 0";
      else{
          int x = B[n-1] - B[n - 2];
          int x2 = B[n - 1] - B[1];
          int x3 = B[n - 2] - B[1];
          int x4 = B[n - 2] - B[0];
          cout <<x <<" " << x2 <<" " << x3 << " " << x4;
      }
      return 0;

你在第一遍忘了消除相同的元素了 另外 以后见到这种最大次大的 记得判特殊值啊! }