如何使用向量为String赋值?

时间:2018-01-27 18:33:20

标签: c++ vector

struct Books{

std::string title;
std::string author;
std::string des;
int book_id = 0;
char identifier;

} ;

// book 0
book[0].title = "Programming Fundamentals"; // subscript out of range
book[0].author, "Robert Hanks";
book[0].des, "Programming Basics";
book[0].book_id = 101;
book[0].identifier = 'P';

// Struct Object
std::vector <Books> book;

当我尝试编译上面的代码时,它给我一个超出范围错误的下标。

我做错了吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你创建了一个空向量并试图通过book[0]语句访问它的元素,这是不正确的。在使用book[0]访问它之前,您需要在向量中至少有一个元素。

初始化矢量以在矢量中至少包含一个元素。我在下面给出一个例子来解决它。

  // Struct Object
  std::vector <Books> book(1);

  // book 0
  book[0].title = "Programming Fundamentals"; // subscript out of range
  ....
  ....