gpt4 book ai didi

c++ - 声明 vector 字符串数组 C++ 时出现段错误

转载 作者:行者123 更新时间:2023-11-28 00:15:33 24 4
gpt4 key购买 nike

#include<iostream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
//#include<set>
#include<list>
#include<cmath>
//#include<algorithm>
#include<fstream>
#include<vector>

#define max 10000.0
using namespace std;

int main()
{
int n;//number of rooms
cin>>n;
vector<string> room_name(n,"");

for(int i=0;i<n;i++)
{
string tmp;
cin >> tmp;
room_name.push_back(tmp);
}
}

错误 Segmentation fault: 11 仍然出现。

无法找到错误点。知道为什么会发生这种情况吗?

最佳答案

仅仅声明一个 vector 是不够的:与数组不同,它可以增长,所以默认情况下它以固定大小的零开始。

如果预先知道 vector 的大小,则可以请求特定大小的 vector (之后也可以增长它)

vector<string> room_name(n, ""); // You can supply a different default, or no default here

这会生成一个包含 100 个空字符串的 vector ,让您可以在后续循环中访问元素 0..n-1。

或者,您可以使用 push_back 让您的 vector 一次增长一个元素,如下所示:

for(int i=0;i<n;i++)
{
string tmp;
cin >> tmp;
room_name.push_back(tmp);
}

关于c++ - 声明 vector 字符串数组 C++ 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30576312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com