问题标签 [vector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 如何访问向量中的最后一个值?
假设我有一个向量嵌套在一个或两个级别的数据框中。是否有一种快速而肮脏的方式来访问最后一个值,而不使用该length()
函数?有什么 ala PERL 的$#
特殊变量?
所以我想要类似的东西:
代替
.net - 在 C++/CLI 中将 std::vector<>::iterator 转换为 .NET 接口
我正在包装一个本机 C++ 类,它具有以下方法:
1) 表示这种接口的“.NET 方式”是什么?返回数组<>的单个方法?array<> 泛型是否有迭代器,以便我可以实现 BeginLocals() 和 EndLocals()?
2) Local 是否应该在 .NET 包装器中声明为值结构?
我真的很想用 .NET 风格来表示包装类,但我对托管世界很陌生——这种类型的信息让谷歌感到沮丧......
c++ - 帮助合并向量的算法
我需要一个非常快速的算法来完成以下任务。我已经实现了几种完成它的算法,但是它们对于我需要的性能来说都太慢了。它应该足够快,以至于算法可以在现代 CPU 上每秒至少运行 100,000 次。它将在 C++ 中实现。
我正在使用跨度/范围,这是一种在一条线上具有起点和终点坐标的结构。
我有两个跨度向量(动态数组),我需要合并它们。一个向量是 src,另一个是 dst。向量按跨度起始坐标排序,跨度在一个向量内不重叠。
src 向量中的 span 必须与 dst 向量中的 span 合并,这样得到的向量仍然是排序的并且没有重叠。IE。如果在合并期间检测到重叠,则将两个跨度合并为一个。(合并两个跨度只是改变结构中的坐标的问题。)
现在,还有一个问题,src 向量中的跨度必须在合并期间“加宽”。这意味着将在 src 中每个跨度的开始坐标添加一个常量,并将另一个(更大的)常量添加到结束坐标。这意味着在 src 跨度扩大后,它们可能会重叠。
到目前为止,我得出的结论是它不能完全就地完成,需要某种临时存储。我认为它应该在线性时间超过 src 和 dst 总和的元素数量。
任何临时存储都可能在算法的多次运行之间共享。
我尝试过的两种太慢的主要方法是:
将 src 的所有元素附加到 dst,在附加之前扩展每个元素。然后运行就地排序。最后,使用“读”和“写”指针遍历结果向量,读指针在写指针之前运行,在进行时合并跨度。当所有元素都被合并(读指针到达末尾) dst 被截断。
创建一个临时工作向量。通过重复从 src 或 dst 中选择下一个元素并合并到工作向量中来进行如上所述的简单合并。完成后,将工作向量复制到 dst 并替换它。
第一种方法的问题是排序是 O((m+n)*log(m+n)) 而不是 O(m+n) 并且有一些开销。这也意味着 dst 向量必须增长得比它真正需要的大得多。
第二个主要问题是大量复制并再次分配/释放内存。
如果您认为需要,可以更改用于存储/管理跨度/向量的数据结构。
更新:忘了说数据集有多大。最常见的情况是任一向量中有 4 到 30 个元素,并且 dst 为空或 src 和 dst 中的跨度之间存在大量重叠。
c++ - STL vectors with uninitialized storage?
I'm writing an inner loop that needs to place struct
s in contiguous storage. I don't know how many of these struct
s there will be ahead of time. My problem is that STL's vector
initializes its values to 0, so no matter what I do, I incur the cost of the initialization plus the cost of setting the struct
's members to their values.
Is there any way to prevent the initialization, or is there an STL-like container out there with resizeable contiguous storage and uninitialized elements?
(I'm certain that this part of the code needs to be optimized, and I'm certain that the initialization is a significant cost.)
Also, see my comments below for a clarification about when the initialization occurs.
SOME CODE:
c++ - 获取向量进入一个需要向量的函数
考虑这些类。
这个函数
最后是我的矢量图
我想传递derived
给 function BaseFoo
,但编译器不让我。我如何解决这个问题,而不将整个向量复制到 a std::vector<Base*>
?
c++ - 使用迭代器获取向量的索引
当迭代向量的元素时,最好使用迭代器而不是索引(请参阅为什么使用迭代器而不是数组索引?)。
但是,可能需要在循环体中使用索引。在这种情况下,考虑到性能和灵活性/可扩展性,以下哪一项更可取?
- 恢复到索引循环/li>
- 计算偏移量/li>
- 使用 std::distance/li>
arrays - 类中的向量问题
我在一个类中有这个代码:
所以它会出现这个错误:数组下标的无效类型`int [int]'
有什么问题?我不明白。谢谢。
c++ - 函数返回另一个函数的返回值
如果我想调用Bar()
而不是Foo()
,是否会Bar()
返回 Foo() 返回的副本(额外开销),还是返回Foo()
放置在临时堆栈上的相同对象?
opengl - 将 Z 轴与矢量对齐的最简单方法是什么?
给定一个点,例如 (0, 0, 0) 和一个向量,例如 (x, y, z)。对齐以 (0, 0, 0) 为中心的负 Z 轴以指向该向量的方向的最简单方法是什么?欢迎使用 OpenGL 的示例,但不是必需的。
c - 对基于 c 的小型向量和矩阵库的建议
我需要一个用于 2d 和 3d 向量以及 3x3 和 4x4 矩阵的轻量级库。在基本的 C 中。这样我就不会以次优的方式重新发明轮子。
有什么建议么?