我這有一小段代碼VISUAL C++ 2010載體的定位似乎沒有更新
int row[7];
bool equals = false;
std::vector<int>range;
for(int i = 1; i <= 35; ++i)
{
range.push_back(i);
}
for(int i = 0; i < 7; i++){
int number = range[rand() % range.size() + 1];
std::vector<int>::iterator pos = find(range.begin(), range.end(), number);
row[i] = number;
range.erase(range.begin() + (*pos - 1));
std::cout << row[i] << endl;
}
return 0;
它需要遠離向量隨機元素,我有問題,我每次從尺寸更新的矢量中移除一個對象,但位置似乎沒有改變矢量中的單個數字,這使得程序崩潰,因爲我有時會在矢量的邊界外移動。
我試過用vector :: shrink_to_fit,但它似乎沒有重新評估向量項目的位置。
我錯過了什麼?這似乎是一件很簡單的事情,但我無法用頭圍住它。
P.S 我是一個C++擦洗所以如果你有任何關於代碼的輸入是壞/不安全的我打開的建議/建設性的批評。
偉大的,你投了下去,用了給我任何輸入你認爲這個問題是錯誤的。 –
您應該發佈一些重現問題的最小代碼。用你發佈的內容,只能猜測。 – juanchopanza
現在編輯它包含所有產生問題的代碼@juanchopanza –