gpt4 book ai didi

c++ - vector 超出特定机器的范围?

转载 作者:行者123 更新时间:2023-11-27 23:06:36 27 4
gpt4 key购买 nike

我的一个程序中有一个函数只在特定机器上抛出错误。它在我的 Windows 机器上运行良好,但是当我在 Linux 机器上测试它时,它抛出一个 vector 超出范围错误:

----------------------------------------------
FINDING LONGEST WORD CHAIN
----------------------------------------------
The longest chain(s) are:

terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
Abort

这是我的例程:

void findLongestChain(vector<FlexArray<StringWrap>* >& chains) {
int max;
int maxIndex;
vector<int> v;

for(std::vector<int>::size_type i = 0; i != chains.size(); i++) { // iterate through vector
int chainSize = getChainSize(chains, i);

if(chainSize == max) { // just in case we have a tie
v.push_back(i);
}

else if(chainSize > max) { // we have found a larger word chain breaking any previous ties
max = chainSize;
maxIndex = i;
v.clear();
v.push_back(i);
}
}

cout << "----------------------------------------------" << endl;
cout << " FINDING LONGEST WORD CHAIN " << endl;
cout << "----------------------------------------------" << endl;
cout << "The longest chain(s) are: " << endl;

for(std::vector<int>::size_type i = 0; i < v.size(); i++) {

cout << " Chain #" << v[i] << ": " << getWordChain( chains, v[i] ) << endl;
}

cout << endl;
cout << "Each chain(s) contain " << getChainSize(chains, maxIndex) << " total words.";
}

无论如何,我以前从未见过这种情况。我想知道是否有人对不同机器上的程序错误有一些一般性的提示/建议/经验,以及如何着手解决问题。

最佳答案

以下几行可能是罪魁祸首。

int max;
int maxIndex;

变量没有初始化。尝试将它们初始化为合理的值,然后看看效果如何。

关于c++ - vector 超出特定机器的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23147419/

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