c++ 从整型数组中提取固定位置上的元素组成新的数组

有两个数组,第一个数组储存位置,第二个数组储存数字,
然后提取第二个数组里的元素组成第三个数组。这要怎么实现?

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v1 = {1,2,4,5,6,10};
    vector<int> v2 = {15,4,52,6,7,8,9,0,12,45};
    vector<int> v3;
    for (size_t i = 0; i < v1.size();i++)
    {
        for (size_t j = 0; j < v2.size();j++)
        {
            if(v1[i] > v2.size()  || v1[i] <0) continue;
            v3.push_back(v2[v1[i-1]]);
        }
    }
    return 0;
}