问题标签 [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 structs in contiguous storage.  I don't know how many of these structs 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 中。这样我就不会以次优的方式重新发明轮子。
有什么建议么?