如何对这两个结构的容器进行赋值

怎么对这两个结构的容器进行赋值

struct copy
{
int index;
float value;
}
vector<float> fvec;
vector<copy> costcopy;
fvec.push_back(20); 
fvec.push_back(90);
fvec.push_back(25);
fvec.push_back(23); 


现在怎么将fvec容器中的数依次赋值给costcopy并且相应的index为其赋值顺序
比如上述代码,costcopy中处理后的value依次为20,90,25,23;index依次为0,1,2,3,
求解赋值方法

------解决方案--------------------
首先,建议给copy换个名字
然后,建议给copy添加一个构造函数,否则必须单独定义一个copy变量才能加进容器内,如果有构造函数就可以在push_back内构造甚至直接emplace_back添加进去

如果是gcc编译器,倒是可以直接这样
    for (size_t i=0; i<fvec.size(); i++)
        costcopy.push_back({i,fvec[i]});

struct copy
{
    int index;
    float value;
    copy(int _i, float _v):index(_i),value(_v)
    {}
};
    for (size_t i=0; i<fvec.size(); i++)
        costcopy.push_back(copy(i,fvec[i]));
//      costcopy.emplace_back(i,fvec[i]); //c++11

------解决方案--------------------
引用:
我用的是VC6.0求具体可以执行的代码,谢谢了

如果你可以修改copy,用2楼的
如果不可以
    for (size_t i=0; i<fvec.size(); i++)
    {
        copy tmp = {i,fvec[i]};
        costcopy.push_back(tmp);
    }