2014-02-06 94 views
0

如何在犰狳vec中的矢量末尾推送元素?我正在循環中添加和刪除排序列表中的元素。這是非常昂貴的事情。我目前在做從A VEC X移除元素的情況下的方式VEC x_curr爲:在犰狳vec背後推動元素

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

但是它的不平凡,在循環添加元素的情況下。

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

這不正確。另外效率不高。在犰狳中做什麼是最有效的方法。任何其他STL庫解決方案。我在Rcpp犰狳中使用它。我可以排序每個循環。 x_curr用於存儲arma :: mat列的索引,即我將使用它作爲mat.col(x_curr)。

+0

聽起來像是你想要一個[multiset](http://www.cplusplus.com/reference/set/multiset/)。 –

+0

謝謝凱文。然而,Multiset不能用作arma:mat的指標向量。我將使用它們作爲mat.col(x_curr)。 – vinash85

回答

2

我不明白你的問題。

犰狳是數學圖書館,所以它運作載體。如果你不知道自己的尺寸,你可以分配一個猜測的元素,並根據需要調整共同的'時代2'成語,最後縮小。如果你知道尺寸,那麼你沒有問題。

STL有所謂的通用容器和算法,但它不會做線性代數。你需要弄清楚你最需要什麼,並相應地規劃你的實施。

0

我不知道,我明白你想要做的, 什麼,但如果你想要一個元素在你的載體, 的末尾添加你能做到這樣的:

yourvector.resize(yourvector.size()+1); 
    yourvector(yourvector.size()-1) = element;