C++ 在两个索引之间反转向量的元素

C++ 在两个索引之间反转向量的元素,c++,vector,C++,Vector,我想在向量的两个特定位置之间反转元素。下面是我的代码: std::vector<int> shuffleState(std::vector<int> deck, int numberOfRiffleShuffles) { if (numberOfRiffleShuffles%2 !=0) std::reverse(deck.begin()+1, deck.end()-1); return deck; } 你能告诉我代码有什么问题吗?我能做些什么来解决这个“问题”你应该把

我想在向量的两个特定位置之间反转元素。下面是我的代码:

std::vector<int> shuffleState(std::vector<int> deck, int numberOfRiffleShuffles) {
if (numberOfRiffleShuffles%2 !=0)
std::reverse(deck.begin()+1, deck.end()-1);
return deck;
}

你能告诉我代码有什么问题吗?我能做些什么来解决这个“问题”

你应该把两个双向迭代器传递给
std::reverse


这将反转所有
向量
,但第一个和最后一个元素除外。

您可能想要
大小()
(存储项的大小),而不是
容量()
(分配的存储容量)


若你们想反转一个范围的顺序,你们不需要一个循环,只需要一个命令

别猜!阅读文档。你的循环-这是胡说八道。你根据发布的答案修复了代码。不要那样做,这会使答案变得无关紧要。然后,您将问题更改为其他错误消息。也不要这样做,针对不同的问题发布一个新问题。
undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
std::reverse( d.begin() + 1, d.end() - 1 );