Saya memiliki std::vector yang disebut kemungkinan_angka dan saya mencoba menggunakan metode .push_back() untuk menambahkan nilai variabel i ke belakang vektor. Ketika saya mencoba melakukannya, kode saya akhirnya menambahkan i ...

0
Dragon_31 5 April 2021, 23:23

2 jawaban

Jawaban Terbaik

Ada beberapa masalah dengan cuplikan kode ini:

  1. Jika Anda mencoba membuat daftar angka, mengapa Anda menggunakan std::vector<std::string>? Ini membuat vektor string, jika Anda mencari int, gunakan std::vector<int>.

  2. Mendorong "i" mendorong string literal "i", bukan variabel i. Saat menghapus ", Anda mendorong int ke dalam vektor yang mengharapkan string, itu sebabnya Anda mendapatkan kesalahan tanpa kelebihan untuk push_back() dengan argumen int untuk vektor string. Salah satu kesalahan lainnya adalah kompiler gagal mengonversi "i" dari char ke int.

Apa yang mungkin Anda cari adalah:

int main() {
   std::vector<int> possible_numbers;
   for (int i = 1; i < 101; i++) {
      possible_numbers.push_back(i);
   }
}
3
Remy Lebeau 5 April 2021, 20:57

Masalah terbesar adalah vektor Anda yang disebut possible_numbers memegang std::string alih-alih tipe numerik. Dilihat dari kode Anda, Anda bermaksud untuk mempertahankan ints dalam rentang [1, 100].

Dengan kode Anda, semudah mengganti <std::string> dengan <int> dalam deklarasi possible_numbers Anda dan menghapus tanda kutip di sekitar i dalam panggilan Anda ke push_back().

Tetapi dengan bilangan asli berurutan, ada metode yang lebih sederhana menggunakan std::iota() dari <numeric>:

#include <iomanip>
#include <iostream>
#include <numeric>
#include <vector>

int main() {
  std::vector<int> v(100);

  std::iota(v.begin(), v.end(), 1);

  for (auto i : v) {
    std::cout << std::setw(3) << i << (i % 20 == 0 ? '\n' : ' ');
  }
}

Keluaran:

  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20
 21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40
 41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60
 61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80
 81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100
3
sweenish 5 April 2021, 20:38