所以我接受了测试并收到了我教授的评论,说我的功能效率低下。该函数应该执行以下操作: - 随机选择向量中的2个元素并交换它们的值 - 确保有一个要交换的元素:
我知道有一个通常可以使用的swap()函数,但我的教授说我们不能#include(我们在VS中)。我的问题是如何提高效率。这更多是出于好奇,因为我在测试中表现还不错,但是当我无法解决问题时我无法忍受。
所以这就是我所做的。
void IntegerCollection::SwapTwoElements()
{
if (MyVector.size() >= 1)
{
int i;
int j;
int holder1;
int holder2;
i = rand() % (MyVector.size());
j = rand() % (MyVector.size());
holder1 = MyVector[i];
holder2 = MyVector[j];
MyVector[j] = holder1;
MyVector[i] = holder2;
}
}
//简单的方法,但我们无法使用swap
std::swap (MyVector[rand() % (MyVector.size())] , MyVector[rand() % (MyVector.size())]);
感谢所有有兴趣的人帮我停止撞墙,试图找出另一种解决方案。