vector<int> 如何转换为double数字

有一个vector类型的容器,比如说3,10,2,5, 现在想提取出来其中的每一项,并且将10转换为小数点 ,使整个容器变为3.25 的double类型,有什么方法可以做到吗

vector<int> src={3,10,2,5};
vector<double> dst;
dst.push_back(1.0*src[0]+0.1*src[2]+0.01*src[3]);

既然vector申明为放整数的容器,那么就不能放浮点数了

再创建一个

vector<double>

数组,将原整型数组按照你的转换规则放入新的

vector<double>

数组就可以了。有帮助请采纳,谢谢!


vector<int> test={1,2,3,4};
vector<double> out(test.begin(),test.end());

#include <cstdio>
#include <vector>
using namespace std;
int main() {
    vector<int> src={3,0,10,2,5,8};
    vector<double> dst;
    double d,pw;
    int dotloc=(int)src.size()-1;
    for (int i=0;i<(int)src.size();i++) {
        printf("%3d ",src[i]);
        if (src[i]==10) {
            dotloc=i;
        }
    }
    printf("\ndotloc:%d\n",dotloc);
    dotloc--;
    d=0.0;
    pw=1.0;
    if (dotloc>0) for (int i=0;i<dotloc;i++) pw*=10.0;
    if (dotloc<0) for (int i=0;i<dotloc;i++) pw/=10.0;
    for (int i=0;i<(int)src.size();i++) {
        if (src[i]==10) {
            printf("dot\n");
        } else {
            printf("pw:%15.5lf, src[%d]:%2d, d:%lg\n",pw,i,src[i],d);
            d=d+pw*src[i];
            pw/=10.0;
        }
    }
    printf("d:%lg\n",d);
    dst.push_back(d);
    return 0;
}
//  3   0  10   2   5   8
//dotloc:2
//pw:       10.00000, src[0]: 3, d:0
//pw:        1.00000, src[1]: 0, d:30
//dot
//pw:        0.10000, src[3]: 2, d:30
//pw:        0.01000, src[4]: 5, d:30.2
//pw:        0.00100, src[5]: 8, d:30.25
//d:30.258
//