在犰狳的vec后面推元素

问题描述 投票:0回答:2

如何在犰狳的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)。

vector stl rcpp armadillo
2个回答
2
投票

我不明白你的问题。

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

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


0
投票

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

    int sz = yourvector.size();
    yourvector.resize(sz+1);
    yourvector(sz) = element;
© www.soinside.com 2019 - 2024. All rights reserved.