提问人:Bubaya 提问时间:11/2/2023 最后编辑:Bubaya 更新时间:11/2/2023 访问量:62
转换嵌套 stl 容器内的值
Converting values inside nested stl containers
问:
我的全部观点是,我有一个
struct S {
double x, y;
// some code defining properties and operations on such pairs.
// ...
// ...
operator std::pair<double, double>(){
return {x,y};
}
};
出于语义原因,并且为了能够在其中定义所有这些属性和操作,我选择不使用和几个全局函数。现在这让我头疼:出于某种原因,我需要转换一个S
std::pair<double, double>
std::vector<std::array<std::vector<S>, 3>>
到 a
std::vector<std::array<std::vector<std::pair<double, double>>, 3>>
我知道我可以通过说 a 转换为 a。然而,在这种嵌套的情况下,我的印象是这变得笨拙。vector<T> v
vector<U>
vector<U>(v.begin(), v.end()
还有其他选择吗?还是我应该重新考虑整个方法?
答: 暂无答案
评论
std::array<std::pair<double, double>, 3>
std::array<std::vector<S>, 3>
S
first
second
std::transform
。隐式转换运算符往往会在最不预期和最糟糕的情况下返回并使用。