gpt4 book ai didi

c++ - vector (push_back); g++-O2;分段故障

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:51 25 4
gpt4 key购买 nike

我在使用 vector 时遇到问题(在 push_back 的使用中),但它仅在使用额外的 g++ 标志 -O2 时出现(我需要它)。

#include <cstdio>
#include <vector>

typedef std::vector<int> node;
typedef std::vector<node> graph;

int main()
{
int n, k, a, b, sum;
bool c;
graph g(n, node());
c = scanf("%i%i", &n, &k);

for(int i=0; i<n; i++)
{
sum=2;
for(int j=0; j<i; j++)
sum*=2;
for(int j=0; j<sum; j++)
{
if(j%2==0)
c = scanf("%i", &a);
else
{

c = scanf("%i", &b);
a += b;
g[i].push_back(a); //---------------LINE WHICH CAUSES SEGMENTATION FAULT
}

}
}

for(int i=n-2; i>=0; i--)
{
for(size_t j=0; j<g[i].size(); j++)
{
if(g[i+1][(j*2)] >= g[i+1][(j*2)+1])
g[i][j] = g[i+1][j*2];
else
g[i][j] = g[i+1][(j*2)+1];
}
}

printf("%i\n", g[0][0]);

return 0;
}

最佳答案

我认为你有:

graph g(n, node());
c = scanf("%i%i", &n, &k);

顺序相反。就目前而言,用于调整图形大小的变量“n”未初始化。

关于c++ - vector (push_back); g++-O2;分段故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258365/

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