как прочитать целый вектор? - PullRequest
0 голосов
/ 28 апреля 2020
#include"std_lib_facilities.h"
int main()
{
  vector<int>test = {1,2,3,4,5,6,7,8,9};
    cout<<test[0,8]<<'\n';
}

Я хочу, чтобы этот код печатал от 0 до 9, но он печатает только 9, и я также попытался

cout<<test[0,test.size()] 

, но он показывает «ошибку диапазона 9» .... Также пожалуйста, не рекомендуйте мне этот код:

for(int x : test)
  cout<<x<<'\n';

, потому что я не знаю, как эффективно использовать этот х .... пожалуйста, помогите мне в этом ...

Ответы [ 3 ]

3 голосов
/ 28 апреля 2020

В выражении 0,8 используется встроенный оператор запятой *1003* , а результатом является значение в правой части запятой. В случае 0,8 результат равен 8.

Чтобы напечатать целый вектор, вы должны использовать al oop, либо непосредственно как тот, который вы, по-видимому, не хотите использовать (почему?) или косвенно через функцию, которая содержит al oop (например, вызов std::copy, показанный в другом ответе ).

2 голосов
/ 28 апреля 2020

Вы можете скопировать содержимое вектора в поток.

copy(begin(test), end(test), ostream_iterator<int>(cout, " "));

Вам необходимо включить iterator

0 голосов
/ 28 апреля 2020

Это рабочий пример с комментариями для объяснения:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
  vector<int>test = {0,1,2,3,4,5,6,7,8,9}; // u need to add 0 to print it this is in case when u want print the vector content

  //scan the vector
  for(unsigned i=0; i<test.size(); i++)
      cout << test[i] << endl; // print out the vector item in the i position
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...