Отображать сообщение, когда вектор пуст - PullRequest
0 голосов
/ 10 апреля 2020

Я хотел бы знать, как отобразить сообщение, когда вектор пуст. Я знаю, что требуется, но я не знаю, как это должно быть структурировано.

void displaypoints(const vector<int>& vec) {

    cout << "[";
    for (const auto& i : vec) {
        cout << i << ' ';
    }
    cout << "]" << endl;

};

int main() {

vector <int> myvec {};
vector <int> newvec {1,2,3,4,5};
cout << "myvec";
displaypoints(myvec);
cout << "newvec";
displaypoints(newvec);



if (newvec.at(0) == 1) {
    auto iq = find(newvec.begin(), newvec.end(), 1);
    if (iq != newvec.end()) {
        newvec.erase(iq);
    }



if (newvec.begin(), newvec.end(), 2) {

    auto ik = find(newvec.begin(), newvec.end(), 2);
    if (ik!= newvec.end()) {
    myvec.push_back(*ik);
    newvec.erase(ik);

}  

else if (newvec.begin(), newvec.end(), 3) {

    auto ik = find(newvec.begin(), newvec.end(), 3);
    if (ik!= newvec.end()) {
    myvec.push_back(*ik);
    newvec.erase(ik);


    }
}
}
}

if (newvec.at(0) == 5) {
    auto ik = find(newvec.begin(), newvec.end(), 5);
    if (ik!= newvec.end()) {
    myvec.push_back(*ik);
    newvec.erase(ik);

    }




}

displaypoints(newvec);
displaypoints(myvec);


}

Приведенный выше код ищет число 1, стирает его, затем перемещает 2 в вектор myve c. Если нет 2, то он перемещается 3 из-за позиции 0, которую я добавил. Существует также другой оператор if, который перемещается на 5, если он находится в позиции 0. Мне нужен еще один оператор if для печати сообщения, если в векторе newve c ничего нет.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020
void displaypoints(vector<int> & vec){
    if(vec.empty()){
        cout<<"Vector Empty \n";
    }
    else {
        //do your operations
    }
}

независимо от того, что вы используете, попробуйте сначала очистить сборку, а затем собрать все и запустить код, который будет работать.

0 голосов
/ 10 апреля 2020
#include <algorithm>
#include <iostream>
#include <vector>

void
display_points(const std::vector<int>& v)
{
  if (v.empty()) {
    std::cout << "Empty vector.\n";
  } else {
    std::cout << "[ ";
    for (const auto& i : v) {
      std::cout << i << ' ';
    }
    std::cout << "]\n";
  }
}

int
main()
{
  std::vector<int> myvec;
  std::vector<int> newvec{ 1, 2, 3, 4, 5 };

  std::cout << "myvec: ";
  display_points(myvec);
  std::cout << "newvec:";
  display_points(newvec);

  int i = 1;
  while (newvec.size() > 0) {
    auto it = std::find(newvec.begin(), newvec.end(), i);
    if (it != newvec.end()) {
      myvec.push_back(*it);
      newvec.erase(it);
    }
    ++i;
  }

  std::cout << "myvec: ";
  display_points(myvec);
  std::cout << "newvec:";
  display_points(newvec);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...