c++ - 将大整数作为向量中的值传递时出现分段错误
问题描述
传递大整数时出现分段错误(核心转储)。它适用于较小的输入。
替换int
为long int
并尝试全局声明变量,但仍然是同样的错误。此函数用于执行多次右圆旋转并返回给定索引处元素的值。这是功能:
vector<long long int> circularArrayRotation(vector<long long int> a, long long int k, vector<long long int> queries) {
vector <long long int> b;
std::vector<long long int> result(queries.size());
b=a;
for(long long int j=0;j<k;j++)
{
for(long long int i=0;i<a.size();i++)
a[i]=b[(a.size()+i-1)%a.size()];
b=a;
}
for(long long int k=0;k<queries.size();k++)
result[k]=a[queries[k]];
for(long long int i=0;i<result.size();i++)
cout<<result[i]<<endl;
return result;
}
剩下的代码可以在这里找到链接
解决方案
Avector
由一组连续内存支持,您的机器无法分配如此大的数组。
您可以考虑改用 a list
,但如果您关心性能,可能需要重写代码以使用迭代器。
推荐阅读
- node.js - WebStorm - 调试 Jest 测试 - 断点之前的异常时间量
- oracle - 如何将多个值传递给 UPDATE 或 SELECT COUNT(*) 语句
- javascript - eventListeneres 没有响应或死于 DOM 操作
- python - “AutoTrackable”对象在 Python 中不可调用
- c - 将字符串与数组中的单词进行比较
- uwp - 我的 UWP 应用程序中有两个麦克风,如何提供下拉菜单并选择选择的麦克风
- javascript - date.getFullYear 不是 while() 中的函数
- sql - 替代 case 语句的参数
- sql - 如何在where子句中使用多个条目?
- c++ - 我正在尝试创建一个滚动功能,我希望有人可以就我遇到的某个问题提供一些建议