2d-vector 相关问题


为什么将迭代器 '(vector<int> a).begin()' 传递给参数 'vector<T>::iterator b' 时无法推断 'T' 的类型?

有以下代码: 模板 void test(const typename std::vector::iterator &i){ } int main(int argc, char **argv) { std::向量 a; 测试(a.


指向 std::vector 的指针作为输出参数

我将一个指向向量的指针作为函数中的输出参数,我不知道这是否是最佳实践: 状态接口::method(const std::vector** outVec); 我正在写...


给定一个索引列表,如何从 std::vector 中删除这些元素?

我先描述一下更高层次的目标。我有一个布尔值矩阵(我使用 std::vector> 作为表示)。 我想删除整行所在的所有行...


如何将 Boost.MultiArray 的 2D 视图作为函数的参数?

我有一个 3D 双精度数组。我想编写简单且通用的函数来打印它的 2D 切片。 代码: #包括 #包括 模板...


Python 中 2D 转置函数的正确类型注释

在我们的代码中,我们做了很多 2D 转置,例如 zip(*something),其中 something 是元组列表。 例如: >>> a = [('a', 1), ('b', 2), ('c', 3)] >>> 结果 = 元组(*zip...


如何通过引用同一个模板函数来传递一行boost::multi_array和std::vector?

我对这段代码有一个问题: #包括 #包括 #包括 #包括 模板 沃伊...


std::remove 是否保留删除的元素,或者它们是否可以被覆盖?

int main() { std::vector v(10, false); v[0] = 真; v[1] = 真; auto end_it = 删除(v.begin(), v.end(), true); 对于 (int i = 0; i < v.size(); ++i) cout << ...


根据条件向 2d numpy 数组添加值

操作 2D numpy 数组时遇到问题(如下)。如果满足给定条件,我正在使用 np.where 添加值,但似乎不起作用。这是根本不可能的还是我正在做...


为什么将operator()作为std::function调用不起作用

考虑这个旨在收集字符串序列的小类: 班级问题_t期末 { 私人的: std::vector m_issues; 民众: constexpr void 运算符()(std::string&a...


从 2D 字符串向量中获取标记组合

我有一个 2D 向量 vecTokens,其中包含字符串标记的子向量。我需要一个字符串的结果向量,其大小 = vecTokens 中所有子向量大小相乘的结果,其中 e...


A-star 是否保证给出 2D 网格中的最短路径

我正在使用 A-star 算法,其中有一个 2D 网格和一些障碍物。现在,我只有垂直和水平障碍,但它们可能会密集变化。 现在,A 星表现良好(我...


将 2d 数组及其值从 c++ 文件显示到 qml 文件中

我有这个 C++ 编码的 9 x 9 2d 数组,我想在 qml 文件中显示它。我怎样才能做到这一点? 这是cpp文件: #include“SudokuModel.h” 数独模型::数独模型(QObject *parent) :


如何在C中通过指针传递二维数组?

我正在学习 C,但在将 2D 数组的指针传递给另一个函数(然后打印 2D 数组)时遇到问题。任何帮助,将不胜感激。 int main( 无效 ){ 字符数组[50][50];...


有没有一种使用STL查找容器中最大元素的便捷方法?

有没有办法使用STL找到容器内最大的容器? ATM机,我有这个 相当幼稚的做法: int main() { std::vector > v; ......


Boost 多阵列 3D

我正在使用 2D 的 boost mutli 数组,如下所示, typedef boost::multi_array array_type; typedef array_type::index 索引; // 初始化数组 array_type U(boost::extent...


确保 std::vector 始终对齐以实现最佳 SIMD 执行的方法?

我想要 X 数量的相同大小的 std::vectors,我可以在 for 循环中一起处理它们,该循环以线性方式从开始到结束。例如: 对于 (int i = 0; i <


为了提高性能,有没有办法避免在调整大小时将向量元素归零?

有什么方法可以使 std::vector 在保留 + 调整大小方面更快? 我希望获得与普通 C 数组相当的性能。 请参阅以下代码片段: T...


AVX2 缩小转换,从 uint16_t 到 uint8_t

我想使用 AVX2 将 2d 数组从 16 位缩小到 8 位。有效的C++代码如下: auto * s = reinterpret_cast(i_frame.Y); 自动 * d = 缩小.data(); 对于(


错误:没有匹配的函数可用于调用 'std::tuple<std::vector<int, std::allocator<int> >&, int>::tuple()'

嘿,我通常使用 Javascript 和 dart,但我被要求为某些项目用 C++ 编写一些代码,所以我在编写代码时遇到了很多问题。我遇到过这个错误


简单的Unity角色控制器问题

我正在制作 2D 平台游戏,为了使角色移动,我使用这个 无效更新() { move = Input.GetAxis("水平"); rb.velocity = new Vector2(move * speed, rb.velocity.y); } 但当我...


C:CS50x - 第 4 周 - 筛选更多:2D 数组大小语法

我无法理解二维数组索引的语法。 (*图像)[宽度] 下面是 ProblemSet Filter-more, Week 3, cs50x 的部分分发 C 代码。代码不是我写的,而是...


在 Unity 2D 自顶向下项目中潇洒

因此,在 3D 游戏中,我使用 .AddForce(dashForce, ForceMode.Impulse) 来计算和执行 Dash 函数(它的作用就像一个魅力)。然而,当我将我所知道的一切转化为……


寻边和连接算法

我的背景和问题的根源来自生物医学研究,所以我不是一个熟练的程序员。我有一种情况,我想平滑 2D 网格的外表面。拉普拉斯算子


Unity 2D 游戏。纹理的遮挡剔除

我想制作一个非平铺(不使用平铺地图)的开放世界。我发现基于场景的系统并不擅长构建开放世界,所以我想出了用......创建单个场景。


与 python 中的绘图 nc 文件相关的错误“输入 z 必须是 2D,而不是 3D”

我使用 500 hPa NOAA 再分析版本 3 绘制了特定时期内垂直速度的平均距平 (https://www.psl.noaa.gov/mddb2/makePlot.html?variableID=142267)。我得到了“inp...


是否可以从脚本更改后期处理?

我正在为果酱制作一款 2D 恐怖游戏,并想到在某些可怕的时刻,色彩效果会沿着屏幕边缘增加,但我不知道该怎么做。你可以给一个


Unity从盒子碰撞器的标签加载场景

我想根据游戏对象具有的标签加载不同的统一场景,并使用 2D 盒子碰撞器(如关卡加载器)。我有 4 个“门”(带有对撞机的游戏对象),名为 top


Unity如何更改LineRenderer排序点?

我正在使用 Unity 2022.2.20 开发一个小型 2d 顶视图游戏项目 我的玩家是一名黑客,需要破解一些东西。 我代表的是用一个游戏对象(名为 Hackray)完成的黑客攻击,它...


在 numpy 中获取 3D 张量的所有 2D 对角线

我有一个 3D 张量 A x B x C。对于每个矩阵 B x C,我想提取前导对角线。 在 numpy 或 pytorch 中是否有一种向量化的方法来执行此操作,而不是循环 A?


Unity 2D:在具有动画的游戏对象上按 Y 缩放

所以,我对 Unity 很陌生,并且有一个问题。我有一个具有运动/动画脚本的游戏对象,我希望角色在 Pos Y 上移动时变小。我尝试使用父级/c...


如何在 LibGDX 2D 模式下设置抗锯齿?

我使用 LibGDX 创建一个视频游戏。 我想打开抗锯齿功能,因为我的游戏像素化程度很高。 场地: 整数样本= 0; 在课堂里 Lwjgl3应用程序配置 不是更公开并且......


二维安全支付网关列表

任何人都可以只提供 2D 安全支付网关(不是 paypal)列表,该列表在美国、英国、欧洲和阿联酋国家/地区运行良好,没有任何问题,只需在 woo commerce 平台进行最少的设置, ...


如何通过对齐四个激光雷达获得的点云来制作矩形?

我有 4 个激光扫描数据,在 ROS 中使用四个 2D-LiDAR 测量块。 但是,即使调整激光雷达的tf,也存在数据如图所示划分的问题。坐在这里...


TF Transformer 模型永远不会过拟合,只会停滞不前:这条训练曲线的解读和改进建议

此训练曲线适用于处理 2D(不包括批次)顺序信号并使用 Adam 优化器、32 批次大小和学习率的 Transformer 模型:自定义 LR 调度程序,


什么时候让 Java 对象在根包之外可见是不好的约定?

我正在构建一个 CLI 国际象棋项目(我的第一个非学校项目)。我的 GameLogic 包中有一个 Board 类,其中包含一个 2D 数组,其中包含代表棋盘的 Piece 对象。我也有一个


我怎样才能让我的网格系统与负片一起工作?

所以我统一制作了一个2D网格系统,它可以检查图块地图以查看是否存在碰撞图块,但前提是我的图块位于一组正坐标上。我在论文上搜索了 2 个小时,然后...


Python 中的二维数组很奇怪,有人可以帮我解决我遇到的这个问题吗?

所以我正在尝试制作一个游戏,它使用 python 中的 2D 数组作为地图,并且从玩家所在的位置仅渲染他们周围的内容。我正在 VScode 上执行此操作,我遇到的问题是...


ML.net - CreateTimeSeriesEngine

我正在使用 ML.net 进行时间序列分析项目。在这里我尝试预测欧元兑美元的交易汇率。我从 CSV 文件加载数据并使用内存数据创建 IDataView。 列表 我正在使用 ML.net 进行时间序列分析项目。在这里我尝试预测欧元兑美元的交易汇率。我从 CSV 文件加载数据并使用内存数据创建 IDataView。 List<RateData> infoList = new List<RateData>(); // populate list infoList = FileParser(infoList); IDataView data = mlContext.Data.LoadFromEnumerable<RateData>(infoList); 我设法像这样运行预测估计器 var forecastEstimator = mlContext.Forecasting.ForecastBySsa( outputColumnName: nameof(RatePrediction.CurrentRate), inputColumnName: nameof(RateData.HistoricalRate), windowSize: 14, seriesLength: numRateDataPoints, trainSize: numRateDataPoints, horizon: 1, confidenceLevel: 0.95f ); SsaForecastingTransformer forecaster = forecastEstimator.Fit(RateDataSeries); 然后我尝试创建这样的预测引擎 var ForecastEngine = Forecaster.CreateTimeSeriesEngine(mlContext); 这里我遇到了一些错误。 我的输入和输出类如下: public class RateData { public DateTime TransactionDate { get; set; } public float HistoricalRate { get; set; } } public class RatePrediction { public float CurrentRate; } 我有这样的错误 System.InvalidOperationException: Can't bind the IDataView column 'CurrentRate' of type 'Vector<Single, 1>' to field or property 'CurrentRate' of type 'System.Single'. at Microsoft.ML.Data.TypedCursorable`1..ctor(IHostEnvironment env, IDataView data, Boolean ignoreMissingColumns, InternalSchemaDefinition schemaDefn) at Microsoft.ML.Data.TypedCursorable`1.Create(IHostEnvironment env, IDataView data, Boolean ignoreMissingColumns, SchemaDefinition schemaDefinition) at Microsoft.ML.Transforms.TimeSeries.TimeSeriesPredictionEngine`2.PredictionEngineCore(IHostEnvironment env, InputRow`1 inputRow, IRowToRowMapper mapper, Boolean ignoreMissingColumns, SchemaDefinition outputSchemaDefinition, Action& disposer, IRowReadableAs`1& outputRow) at Microsoft.ML.PredictionEngineBase`2..ctor(IHostEnvironment env, ITransformer transformer, Boolean ignoreMissingColumns, SchemaDefinition inputSchemaDefinition, SchemaDefinition outputSchemaDefinition, Boolean ownsTransformer) at Microsoft.ML.Transforms.TimeSeries.TimeSeriesPredictionEngine`2..ctor(IHostEnvironment env, ITransformer transformer, Boolean ignoreMissingColumns, SchemaDefinition inputSchemaDefinition, SchemaDefinition outputSchemaDefinition) at Microsoft.ML.Transforms.TimeSeries.PredictionFunctionExtensions.CreateTimeSeriesEngine[TSrc,TDst](ITransformer transformer, IHostEnvironment env, Boolean ignoreMissingColumns, SchemaDefinition inputSchemaDefinition, SchemaDefinition outputSchemaDefinition) at USD_EURO_Conversion_rate.TimeSeriesModelHelper.FitAndSaveModel(MLContext mlContext, IDataView RateDataSeries, String outputModelPath) 预测类中的属性需要是float[]类型;向量/数组而不是单个值,例如 public class RatePrediction { public float[] CurrentRate; } 类似于此处的Microsoft 示例。


CSS 在窄屏幕上显示每个单元格一行的表格

我的 HTML 看起来有点像这样 我的 HTML 看起来有点像这样 <html><body><table> <thead><tr><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead> <tbody> <tr><td>1A</td><td>1B</td><td>1C</td><td>1D</td><td>1E</td></tr> <tr><td>2A</td><td>2B</td><td>2C</td><td>2D</td><td>2E</td></tr> <tr><td>3A</td><td>3B</td><td>3C</td><td>3D</td><td>3E</td></tr> </tbody> </table></body></html> 每一行代表一个对象,列是它的属性。实际上,单元格值相当长——有时甚至有 20-30 个字符长。它在大多数设备上渲染良好,但在较小的手机上可能会出现问题。我知道我可以在狭窄的设备上抑制某些列,但在这个特定的情况下感觉不太好。目前我的桌子上有 x-overflow: scroll,但我更希望有一些 CSS 可以使表格在窄设备上呈现得更像这样: A: 1A B: 1B C: 1C D: 1D E: 1E ----- A: 2A B: 2B C: 2C D: 2D E: 2E ----- (etc) 我了解如何测试设备宽度,因此出于这个问题的目的,我们假设我想无条件地执行此操作。稍微更改一下 HTML 标记就可以了,例如添加额外的类或属性,尽管我想使用 <table> 元素来保留它,每个逻辑行有一个 <tr>。这是为了向后兼容,因为我知道有相当多的用户会抓取该网站(尽管存在更简洁的 API)。由于内部政治,如果可能的话,我宁愿避免需要 Javascript 的解决方案(并且无论如何,如果需要,我知道如何编写 JS 解决方案)。 我可以做到这一点,但我不知道如何从这里硬编码为“X”的字段名称开始: thead { display: none; } table, tr, td { display: block; } tr + tr { border-top: thin solid black; } td::before { content: "X:"; display: inline-block; width: 2em; } 我见过很多网站都在做这种事情,但目前我正在努力寻找一个在 CSS 中做这件事的网站。看起来这应该是一个常见问题,但我很难知道要搜索哪些术语,因此可能会在这里或其他地方错过一些很好的解释。 你就快到了。可能会使用例如data-col 元素上的 <td> 属性并在 CSS 中引用它们 content 上的 :before thead { display: none; } table, tr, td { display: block; } tr+tr { border-top: thin solid black; } td::before { content: attr(data-col)':'; display: inline-block; width: 2em; } <table> <thead> <tr> <th>A</th> <th>B</th> <th>C</th> <th>D</th> <th>E</th> </tr> </thead> <tbody> <tr> <td data-col="A">1A</td> <td data-col="B">1B</td> <td data-col="C">1C</td> <td data-col="D">1D</td> <td data-col="E">1E</td> </tr> <tr> <td data-col="A">2A</td> <td data-col="B">2B</td> <td data-col="C">2C</td> <td data-col="D">2D</td> <td data-col="E">2E</td> </tr> <tr> <td data-col="A">3A</td> <td data-col="B">3B</td> <td data-col="C">3C</td> <td data-col="D">3D</td> <td data-col="E">3E</td> </tr> </tbody> </table> ABCD


似乎无法让下载属性发挥作用

我刚刚开始学习 html 所以我想尝试使用 download 属性 我刚刚开始学习 html,所以我想尝试使用下载属性 <a href="../images/clunk.jfif" download="ur_mum"> <img src="../images/clunk.jfif" alt="ur mum" width="200" height="200"> </a> 图像存储在同一个网站上,但是当我单击它而不是下载时,它只会使图像全屏显示。 我尝试尽可能地排除故障,但没有成功 我能找到的关于为什么某些文件类型发生这种情况但并非所有文件类型的原因是这个答案关于pdf下载与预览的类似问题 - 如果可以的话,请将以下标头添加到服务器端的图像响应中: Content-Disposition: attachment; filename=clunk.jfif 或者,您可以使用自定义 onclick 处理程序替换锚标记,该处理程序将图像转换为数据 URL 并触发下载: <img src="../images/clunk.jfif" width="200" height="200" onclick="downloadImage(this)"> const downloadImage = async (img) => { // fetch the image's media type const mediaType = fetch(img.currentSrc, { method: 'HEAD' }) .then(res => res.headers.get('content-type')) .catch(() => 'image/png' /* default to png if request fails */) // place the image on a canvas element const canv = Object.assign(document.createElement('canvas'), { width: img.naturalWidth, height: img.naturalHeight, }) const ctx = canv.getContext('2d') ctx.drawImage(img, 0, 0) // download the canvas data const a = Object.assign(document.createElement('a'), { download: 'filename', href: canv.toDataURL(await mediaType), }) a.click() }


如何查找给定的键是否存在于 std::map 中

我正在尝试检查给定的键是否在地图中,但有些无法做到: typedef 映射::迭代器 mi; 地图米; m.insert(make_pair("f","++--")); 一对 我正在尝试检查给定的键是否在地图中,但有些做不到: typedef map<string,string>::iterator mi; map<string, string> m; m.insert(make_pair("f","++--")); pair<mi,mi> p = m.equal_range("f");//I'm not sure if equal_range does what I want cout << p.first;//I'm getting error here 那么我怎样才能打印p中的内容呢? 使用 map::find 和 map::end: if (m.find("f") == m.end()) { // not found } else { // found } 要检查映射中是否存在特定键,请通过以下方式之一使用 count 成员函数: m.count(key) > 0 m.count(key) == 1 m.count(key) != 0 map::find的文档说:“另一个成员函数map::count可用于仅检查特定键是否存在。” map::count的文档说:“因为地图容器中的所有元素都是唯一的,所以该函数只能返回1(如果找到该元素)或零(否则)。” 要通过您知道存在的键从映射中检索值,请使用 map::at: value = m.at(key) 与 map::operator[] 不同,如果指定的键不存在,map::at 不会在映射中创建新键。 C++20 为我们提供了 std::map::contains 来做到这一点。 #include <iostream> #include <string> #include <map> int main() { std::map<int, std::string> example = {{1, "One"}, {2, "Two"}, {3, "Three"}, {42, "Don\'t Panic!!!"}}; if(example.contains(42)) { std::cout << "Found\n"; } else { std::cout << "Not found\n"; } } 您可以使用.find(): map<string,string>::iterator i = m.find("f"); if (i == m.end()) { /* Not found */ } else { /* Found, i->first is f, i->second is ++-- */ } C++17 通过带有初始化器的 If 语句进一步简化了这一点。 这样你就可以鱼与熊掌兼得了。 if ( auto it{ m.find( "key" ) }; it != std::end( m ) ) { // Use `structured binding` to get the key // and value. const auto&[ key, value ] { *it }; // Grab either the key or value stored in the pair. // The key is stored in the 'first' variable and // the 'value' is stored in the second. const auto& mkey{ it->first }; const auto& mvalue{ it->second }; // That or just grab the entire pair pointed // to by the iterator. const auto& pair{ *it }; } else { // Key was not found.. } m.find == m.end() // not found 如果您想使用其他API,请找到m.count(c)>0 if (m.count("f")>0) cout << " is an element of m.\n"; else cout << " is not an element of m.\n"; 我想你想要map::find。如果 m.find("f") 等于 m.end(),则未找到密钥。否则,find 返回一个指向找到的元素的迭代器。 错误是因为p.first是一个迭代器,它不适用于流插入。将最后一行更改为 cout << (p.first)->first;。 p 是一对迭代器,p.first 是迭代器,p.first->first 是键字符串。 一张地图对于给定的键只能有一个元素,所以 equal_range 不是很有用。它是为映射定义的,因为它是为所有关联容器定义的,但它对于多重映射更有趣。 template <typename T, typename Key> bool key_exists(const T& container, const Key& key) { return (container.find(key) != std::end(container)); } 当然,如果你想变得更奇特,你可以随时模板化一个函数,该函数也采用已找到的函数和未找到的函数,如下所示: template <typename T, typename Key, typename FoundFunction, typename NotFoundFunction> void find_and_execute(const T& container, const Key& key, FoundFunction found_function, NotFoundFunction not_found_function) { auto& it = container.find(key); if (it != std::end(container)) { found_function(key, it->second); } else { not_found_function(key); } } 并像这样使用它: std::map<int, int> some_map; find_and_execute(some_map, 1, [](int key, int value){ std::cout << "key " << key << " found, value: " << value << std::endl; }, [](int key){ std::cout << "key " << key << " not found" << std::endl; }); 这样做的缺点是想出一个好名字,“find_and_execute”很尴尬,我想不出更好的名字...... map<string, string> m; 检查 key 是否存在,并返回出现次数(map 中为 0/1): int num = m.count("f"); if (num>0) { //found } else { // not found } 检查key是否存在,并返回迭代器: map<string,string>::iterator mi = m.find("f"); if(mi != m.end()) { //found //do something to mi. } else { // not found } 在你的问题中,由坏的operator<<过载引起的错误,因为p.first是map<string, string>,你无法打印出来。尝试这个: if(p.first != p.second) { cout << p.first->first << " " << p.first->second << endl; } 小心地将查找结果与地图“m”的结尾进行比较,因为所有答案都有 上面完成 地图::迭代器 i = m.find("f"); if (i == m.end()) { } else { } 您不应该尝试执行任何操作,例如如果迭代器 i 等于 m.end() 则打印键或值,否则会导致分段错误。 比较 std::map::find 和 std::map::count 的代码,我认为第一个可能会产生一些性能优势: const_iterator find(const key_type& _Keyval) const { // find an element in nonmutable sequence that matches _Keyval const_iterator _Where = lower_bound(_Keyval); // Here one looks only for lower bound return (_Where == end() || _DEBUG_LT_PRED(this->_Getcomp(), _Keyval, this->_Key(_Where._Mynode())) ? end() : _Where); } size_type count(const key_type& _Keyval) const { // count all elements that match _Keyval _Paircc _Ans = equal_range(_Keyval); // Here both lower and upper bounds are to be found, which is presumably slower. size_type _Num = 0; _Distance(_Ans.first, _Ans.second, _Num); return (_Num); } find() 和 contains() 都可以使用。根据文档。两种方法平均时间为常数,最坏情况下为线性时间。 我知道这个问题已经有一些很好的答案,但我认为我的解决方案值得分享。 它适用于 std::map 和 std::vector<std::pair<T, U>>,并且可从 C++11 开始使用。 template <typename ForwardIterator, typename Key> bool contains_key(ForwardIterator first, ForwardIterator last, Key const key) { using ValueType = typename std::iterator_traits<ForwardIterator>::value_type; auto search_result = std::find_if( first, last, [&key](ValueType const& item) { return item.first == key; } ); if (search_result == last) { return false; } else { return true; } } map <int , char>::iterator itr; for(itr = MyMap.begin() ; itr!= MyMap.end() ; itr++) { if (itr->second == 'c') { cout<<itr->first<<endl; } } 如果你想比较成对的地图,你可以使用这个方法: typedef map<double, double> TestMap; TestMap testMap; pair<map<double,double>::iterator,bool> controlMapValues; controlMapValues= testMap.insert(std::pair<double,double>(x,y)); if (controlMapValues.second == false ) { TestMap::iterator it; it = testMap.find(x); if (it->second == y) { cout<<"Given value is already exist in Map"<<endl; } } 这是一项有用的技术。


© www.soinside.com 2019 - 2024. All rights reserved.