gpt4 book ai didi

c++ - 二维 vector 图

转载 作者:行者123 更新时间:2023-11-30 03:03:56 25 4
gpt4 key购买 nike

我正在尝试执行以下操作

std::map <int, std::vector<std::vector<double> > > mapof2Dvectors;

std::vector<std::vector<double> > temp;
for(int u=0; u<size1; u++){
temp.push_back( std::vector<double> ());
temp[u].push_back(somedoublehere);
}
mapof2Dvectors[key].push_back(temp);

当我尝试编译时出现“错误:语义问题:没有从‘std::vector >’到‘const value_type’(又名‘const std::vector >’)的可行转换”

如有任何帮助,我们将不胜感激。

最佳答案

我可以建议使用一些 typedef 吗?错误其实很简单。

typedef std::vector<double> Vectors1d;
typedef std::vector<VectorOfDoubles> Vectors2d;
typedef std::map<int, Vectors2d> MapOf2dVectors;

现在你正在尝试这样做:

MapOf2dVectors mapof2Dvectors;
Vector2d temp;
mapOf2dVectors[key].push_back(temp);

这有助于发现问题吗?当 Vectors2d::push_back 需要一个 Vectors1d 对象时,您基本上是在尝试将 Vectors2d 推回一个 Vectors2d 对象。根据你的类型应该是这样的:

mapOf2dVectors[key] = temp;

或更快:

mapOf2dVectors[key].swap(temp);

你的错误的一个简单类比是这样的:

vector<int> v1;
vector<int> v2;
v1.push_back(v2); // error, push_back accepts only a single integer here

所以我不确定您在寻找什么,但可能是这样的:

v1.insert(v1.end(), v2.begin(), v2.end());

或者这个:

v1 = v2;

关于c++ - 二维 vector 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9098808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com