我编写了一个简单的c ++算法来计算向量的排列.如果我改变这13行,下面的代码工作正常
vector<int>& pp = p.front();
Run Code Online (Sandbox Code Playgroud)
对此
vector<int> pp = p.front();
Run Code Online (Sandbox Code Playgroud)
我不明白为什么.我不认为这是由重新分配造成的.有人能解释一下吗
#include <vector>
using namespace std;
class Solution {
public:
void f(vector<vector<int> >& p, vector<int>& num)
{
if (p.front().size() == num.size()) return;
int k = p.size();
while (k)
{
vector<int>& pp = p.front();
for (int toAdd : num)
{
bool found = false;
for (int i = 0; i < pp.size(); i++)
{
if (pp[i] == toAdd)
{
found = true;
break;
}
}
if (!found)
{
vector<int> newp; …Run Code Online (Sandbox Code Playgroud)