Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将向量c+中的double转换为int+;?_C++_Casting - Fatal编程技术网

C++ 如何将向量c+中的double转换为int+;?

C++ 如何将向量c+中的double转换为int+;?,c++,casting,C++,Casting,我从第一阵就知道了演员阵容 std::vector<int> v_int; std::vector<float> v_float(v_int.begin(), v_int.end()); std::vector v_int; 向量v_浮点(v_int.begin(),v_int.end()); 但如何转换第二个数组 vector<int> aCol(4); vector<vector<int>> a(2, aCol); vector

我从第一阵就知道了演员阵容

std::vector<int> v_int;
std::vector<float> v_float(v_int.begin(), v_int.end());
std::vector v_int;
向量v_浮点(v_int.begin(),v_int.end());
但如何转换第二个数组

vector<int> aCol(4);
vector<vector<int>> a(2, aCol);
vector<vector<double>> b(a.begin(), a.end());// ???
向量aCol(4);
载体a(2,aCol);
向量b(a.begin(),a.end());/???

在这种情况下,我应该怎么做?

对于编译器而言,
向量
向量
是完全不相关的类型,不能隐式地相互转换。您可以做的是:

for(auto&& elem: a)
    b.push_back(std::vector<double>(elem.begin(), elem.end()));
用于(自动和元素:a)
b、 向后推(std::vector(elem.begin(),elem.end());
向量b;
b、 储备(a.size());
用于(常量自动和元素:a){
b、 向后放置(元素开始(),元素结束());
}

向量构造的向量未编译的原因是

vector<vector<double>> b(a.begin(), a.end())
是从元素类型为
int
的迭代器构建
v_float
的范围。这是因为允许从int转换为float,但不能从
std::vector
转换为
std::vector
(或
std::vector


相反,您可能希望查看通过
a
的每个元素的循环,并推回由
a
begin()
end()

构建的向量,以将
std::vector的内容复制到
std::vector
?您想要
std::vector v_int(v_float.begin(),v_float.end())?你遇到了什么问题?向量aCol(4);向量a(2,aCol);向量b(a.begin(),a.end())@윤희동, 我还是不知道你在问什么。你想“转换”什么?我想这只是这个问题的重复。
vector<vector<double>> b(a.begin(), a.end())
std::vector<float> v_float(v_int.begin(), v_int.end());