タグ付けされた質問 「vector」

ベクトルは1次元配列です。ベクトルには、整数インデックスを使用してアクセスできるコンポーネントが含まれています。一部の言語では、ベクターの作成後にアイテムの追加や削除に対応するために、ベクターのサイズが必要に応じて拡大または縮小する場合があります。グラフィック表示には 'vector-graphics'を使用します。

23
重複を消去してベクターをソートする最も効率的な方法は何ですか?
潜在的に多くの要素を持つC ++ベクトルを取得し、重複を消去して、並べ替える必要があります。 現在、以下のコードがありますが、機能しません。 vec.erase( std::unique(vec.begin(), vec.end()), vec.end()); std::sort(vec.begin(), vec.end()); これを正しく行うにはどうすればよいですか? さらに、最初に重複を消去する(上記のコードと同様)か、ソートを最初に実行する方が高速ですか?最初にソートを実行した場合、std::unique実行後もソートされたままになることが保証されますか? または、これをすべて行う別の(おそらくより効率的な)方法はありますか?
274 c++  sorting  vector  stl  duplicates 

10
C ++ベクトルの要素を合計する方法は?
のすべての要素の合計を見つける良い方法は何std::vectorですか? std::vector<int> vectorいくつかの要素を含むベクトルがあるとします。次に、すべての要素の合計を求めます。同じための異なる方法は何ですか?
240 c++  stl  vector 

16
STLのベクターとリスト
効果的なSTLで、 vectorは、デフォルトで使用されるシーケンスのタイプです。 それはどういう意味ですか?効率を無視vectorしても何でもできるようです。 誰かが私にvector実現可能なオプションではないlistが使用する必要があるシナリオを提供できますか?
238 c++  list  vector  stl 

1
C ++ 11を有効にするとstd :: vectorパフォーマンスが低下する
C ++ 11を有効にすると、小さなC ++スニペットで興味深いパフォーマンスの低下が見つかりました。 #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { container.push_back(Item()); } return 0; } g ++(GCC)4.8.2 20131219(プレリリース)とC ++ 03を使用すると、次のようになります。 milian:/tmp$ g++ -O3 main.cpp && …
235 c++  performance  gcc  c++11  vector 

20
Rでベクトルをチャンクに分割する
ベクトルをRで同じサイズのn個のチャンクに分割する必要があります。これを行うための基本関数が見つかりませんでした。また、Googleは私をどこにも連れて行ってくれませんでした。だからここに私が思いついたものがあります、うまくいけばそれが誰かのどこかを助けるでしょう。 x <- 1:10 n <- 3 chunk <- function(x,n) split(x, factor(sort(rank(x)%%n))) chunk(x,n) $`0` [1] 1 2 3 $`1` [1] 4 5 6 7 $`2` [1] 8 9 10 コメント、提案、改善は大歓迎です。 乾杯、セバスチャン
227 r  vector 

22
std :: vectorは単純な配列よりもはるかに遅いですか?
std::vector「配列として実装される」のは一般的な知恵だといつも思っていました。今日私は降りてそれをテストしました、そしてそうではないようです: テスト結果は次のとおりです。 UseArray completed in 2.619 seconds UseVector completed in 9.284 seconds UseVectorPushBack completed in 14.669 seconds The whole thing completed in 26.591 seconds これは約3〜4倍遅くなります。「vector数ナノ秒は遅くなるかもしれない」コメントを正当化しません。 そして私が使用したコード: #include <cstdlib> #include <vector> #include <iostream> #include <string> #include <boost/date_time/posix_time/ptime.hpp> #include <boost/date_time/microsec_time_clock.hpp> class TestTimer { public: TestTimer(const std::string & name) : name(name), start(boost::date_time::microsec_clock<boost::posix_time::ptime>::local_time()) { …
212 c++  arrays  performance  stl  vector 



5
C ++ STLベクトル:インデックスからイテレーターを取得しますか?
そのため、stlベクトルの要素にindex []でアクセスする一連のコードを記述しましたが、今度は、ベクトルのチャンクのみをコピーする必要があります。それはvector.insert(pos, first, last)私が欲しい関数のように見えます... intとして最初と最後しか持っていないことを除いて。これらの値のイテレータを取得できる良い方法はありますか?
200 c++  stl  vector  iterator 

6
ScalaでVectorを選択する必要があるのはいつですか?
VectorScalaコレクションパーティーに遅れたようで、影響力のあるすべてのブログ投稿はすでに残されていました。 Java ArrayListではデフォルトのコレクションです-私は使用するかもしれませんLinkedListが、アルゴリズムを熟考し、最適化するのに十分注意した場合のみです。Scala Vectorでは、デフォルトとしてを使用する必要がありますSeqか、それともList実際に適切な場合に解決する必要がありますか?

13
あなたはstd :: vectorから継承しないでください
わかりました、これを告白するのは本当に難しいですが、私は現在、から継承する強い誘惑がありstd::vectorます。 ベクター用に約10のカスタマイズされたアルゴリズムが必要であり、それらを直接ベクターのメンバーにしたい。しかし当然ながら、の残りstd::vectorのインターフェイスも必要です。さて、私の最初のアイデアは、法律を遵守する市民std::vectorとして、MyVectorクラスにメンバーを含めることでした。しかし、私はすべてのstd :: vectorのインターフェースを手動で再提供する必要があります。入力するには多すぎます。次に、私はプライベート継承について考えました。そのため、メソッドを再提供する代わりusing std::vector::memberに、パブリックセクションにをまとめて記述します。これも実際には退屈です。 そして、私は実際に、私は単純にからパブリックに継承できると本当に思っていますがstd::vector、このクラスは多態的に使用されるべきではないという警告をドキュメントに提供しています。ほとんどの開発者は、これを多態的に使用してはならないことを理解するのに十分な能力があると思います。 私の決定は完全に不当なものですか?もしそうなら、なぜですか?追加のメンバーが実際にはメンバーになるが、ベクターのすべてのインターフェースを再入力する必要がない代替案を提供できますか?疑わしいですが、できれば幸せです。 また、一部の馬鹿が次のようなものを書くことができるという事実は別として std::vector<int>* p = new MyVector MyVectorを使用する上で他の現実的な危険はありますか?現実的と言うことで、ベクトルへのポインタを受け取る関数を想像するようなものを破棄します... さて、私は私のケースを述べました。私は罪を犯しました。今私を許すかどうかはあなた次第です:)
189 c++  oop  inheritance  stl  vector 

8
2つのベクトルを連結する最良の方法は何ですか?
マルチトレッドを使用しており、結果をマージしたいと考えています。例えば: std::vector<int> A; std::vector<int> B; std::vector<int> AB; ABにAの内容とBの内容をこの順序で持たせたい。このようなことをする最も効率的な方法は何ですか?
189 c++  vector 

4
線分の法線ベクトルを計算するにはどうすればよいですか?
(x1、y1)から(x2、y2)へのラインセグメントがあるとします。線に垂直な法線ベクトルを計算するにはどうすればよいですか? 3Dの平面に対してこれを行うことについては多くのことを見つけることができますが、2Dのものはありません。 数学を簡単に行ってください(機能する例、図、またはアルゴリズムへのリンクは大歓迎です)。私は数学者というよりもプログラマーです;)
177 math  geometry  vector 

6
Cスタイルの配列からstd :: vectorを初期化する方法は?
std::vectorCスタイルの配列からを初期化する最も安い方法は何ですか? 例:次のクラスにはがvectorありますが、外部の制限により、データはCスタイルの配列として渡されます。 class Foo { std::vector<double> w_; public: void set_data(double* w, int len){ // how to cheaply initialize the std::vector? } 言うまでもなく、呼び出しw_.resize()て要素をループするか、を呼び出すことができますstd::copy()。より良い方法はありますか?
174 c++  arrays  vector  stl 

11
data.frame列をベクトルに変換しますか?
私は次のようなデータフレームを持っています: a1 = c(1, 2, 3, 4, 5) a2 = c(6, 7, 8, 9, 10) a3 = c(11, 12, 13, 14, 15) aframe = data.frame(a1, a2, a3) 次の列の1つをベクトルに変換しようとしましたが、機能しません。 avector <- as.vector(aframe['a2']) class(avector) [1] "data.frame" これが私が思いつくことができる唯一の解決策ですが、これを行うためのより良い方法がなければならないことを想定しています: class(aframe['a2']) [1] "data.frame" avector = c() for(atmp in aframe['a2']) { avector <- atmp } class(avector) …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.