我寫了下面的代碼輸出是錯誤的 -不能確定爲什麼而旋轉矢量
#include <cassert>
#include <vector>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
vector<int> v;
int main()
{
int n, d, i = 0;
cin >> n >> d;
assert(n >= 1 && n <= 100000 && d >= 1 && d <= n);
int temp = 0;
for (int i = 0; i < n; i++)
{
cin >> temp;
v.push_back(temp);
}
reverse(v.begin(), v.begin() + d - 1);
reverse(v.begin() + d, v.end());
reverse(v.begin(), v.end());
for (i = 0; i < n; i++)
cout << v[i] << " ";
return 0;
}
現在的問題是,當我輸入下面的輸入 - 5 4 1 2 3 4 5
它不給我正確的輸出5 1 2 3 4
,而是給我這個5 4 1 2 3
任何想法可能是什麼錯?
您是否嘗試過使用調試器? –
@AlgirdasPreidžius - 不幸的是,這是一個新的系統,我沒有調試工具的設置。再加上它是Linux :( –
那麼?[Linux有很多調試器。](http://www.drdobbs.com/testing/13-linux-debuggers-for-c-reviewed/240156817) Linux發行版的軟件包管理器應該少於5分鐘(甚至可能已經安裝了[GDB](https://en.wikipedia.org/wiki/GNU_Debugger)的基本命令行版本,即使) –