在犰狳的vec后面推元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在犰狳的vec后面推元素相关的知识,希望对你有一定的参考价值。

如何在犰狳的vec中向量的末尾推一个元素?我正在循环中执行添加和删除排序列表中的元素。这是非常昂贵的事情。在将vec x中的元素移除到vec x_curr时,我目前正在做的方式如下:

x_curr = x(find(x != element))

然而,在循环中添加元素的情况下,这并非易事。

x_curr = x; x_curr << element; x_curr = sort(x_curr);

这不正确。另外效率不高。在犰狳中做到这一点最有效的方法是什么。任何其他STL库解决方案。我在Rcpp armadillo中使用它。我可以对每个循环进行排序。 x_curr用于存储arma :: mat列的索引,即我将其用作mat.col(x_curr)。

答案

我不明白你的问题。

犰狳是一个数学库,所以它在矢量上运行。如果你不知道你的大小,你可以分配一个猜测的N元素,并根据需要调整常见的“时代二”成语,并在最后缩小。如果你知道尺寸,那么你没有问题。

STL具有所谓的通用容器和算法,但它不做线性代数。您需要找出最需要的内容,并相应地规划您的实施。

另一答案

我不确定我是否理解你想要做什么,但如果你想在向量的末尾附加一个元素,你可以这样做:

    int sz = yourvector.size();
    yourvector.resize(sz+1);
    yourvector(sz) = element;

以上是关于在犰狳的vec后面推元素的主要内容,如果未能解决你的问题,请参考以下文章

C ++犰狳生成给定vec或矩阵的索引uvec而不循环它

犰狳向量 vec/fvec 的内存对齐

向量到矩阵犰狳

如何在犰狳中连接两个或多个向量?

如何将犰狳库修复为 C++

犰狳中的 Rcpp 糖命令