«stl» etiketlenmiş sorular

Standart Şablon Kütüphanesi veya STL, genel kapsayıcılar, yineleyiciler, algoritmalar ve işlev nesnelerinin bir C ++ kütüphanesidir. C ++ standartlaştırıldığında, STL'nin büyük kısımları Standart Kitaplığa kabul edildi ve Standart Kitaplıktaki bu kısımlara bazen hatalı olarak topluca "STL" denir.

6
STL kabını filtrelemenin modern yolu?
Yıllarca C #'dan sonra C ++ 'ya geri dönersek, modern olanın - okuyun: C ++ 11 - bir diziyi filtreleme yolunun ne olacağını merak ediyordum, yani bu Linq sorgusuna benzer bir şeyi nasıl başarabiliriz: var filteredElements = elements.Where(elm => elm.filterProperty == true); Bir element vektörünü filtrelemek stringsiçin (bu soru uğruna)? …
99 c++  c++11  stl 

2
std :: back_inserter std :: küme için?
Sanırım bu basit bir soru. Bunun gibi bir şey yapmam gerekiyor: std::set<int> s1, s2; s1 = getAnExcitingSet(); std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor()); Tabii ki, std::back_inserterolmadığı için çalışmıyor push_back. std::inserterbir yineleyiciye de ihtiyaç var mı? Kullanmadım, std::inserterbu yüzden ne yapacağımı bilmiyorum. Bir fikri olan var mı? Elbette, diğer seçeneğim bir vektörü kullanmak …
98 c++  algorithm  stl 


8
vektör :: at ve vektör :: operatörü []
Bunun , / [] operatör hızında C ++ Vector veya :: std :: vector :: at () ile operatör [] << arasındaki benzer sorularda tartışılan sınır kontrolünden at()daha yavaş olduğunu biliyorum << şaşırtıcı sonuçlar !! 5 ila 10 kat daha yavaş / daha hızlı! . Sadece yöntemin ne işe yaradığını …
98 c++  stl  stdvector 


2
bir liste <T> nesnesini diğerine nasıl eklenir
C ++ 'da, iki list&lt;T&gt;nesnem var Ave Btüm üyelerini Bsonuna eklemek istiyorum A. Birkaç farklı kaynağı araştırdım ve basit bir çözüm (ei A.append(B);) bulamadım ve bu beni biraz şaşırttı. Bunu yapmanın en iyi yolu nedir? Olduğu gibi, bundan sonra B'yi umursamıyorum (sonraki satırda silinir) bu yüzden daha iyi performans için …
94 c++  list  stl 


7
Standart kapsayıcı (std :: harita) içeriğini gdb ile inceleme
Bunun gibi bir şeye sahip olduğunu varsayarsak: #include &lt;map&gt; int main(){ std::map&lt;int,int&gt; m; m[1] = 2; m[2] = 4; return 0; } Programı çalıştıran haritanın içeriğini gdb'den inceleyebilmek istiyorum. Alt simge operatörünü kullanmayı denersem şunu elde ederim: (gdb) p m[1] Attempt to take address of value not located in memory. …
93 c++  stl  map  gdb 

8
std :: harita ekleme veya std :: harita bulma?
Mevcut girişleri korumak istediğiniz bir harita varsayarsak. Zamanın% 20'si, eklediğiniz giriş yeni verilerdir. Std :: map :: find sonra std :: map :: insert yapmanın o dönen yineleyiciyi kullanarak bir avantajı var mı? Yoksa eklemeyi denemek ve ardından yineleyicinin kaydın eklenip eklenmediğini gösterip göstermediğine bağlı olarak hareket etmek daha mı …
93 c++  optimization  stl  stdmap 

8
FIFO için hangi STL kabını kullanmalıyım?
Hangi STL kabı ihtiyaçlarımı en iyi şekilde karşılar? Temelde , en eski öğeyi (yaklaşık bir milyon kez) oluştururken içinde sürekli olarak push_backyeni öğeler içeren 10 öğe genişliğinde bir kabım var pop_front. Şu anda bir kullanıyorum std::dequegörev için ancak eğer merak std::listBen kendisini yeniden tahsis etmek gerek olmazdı çünkü daha verimli …
93 c++  stl  fifo 

8
<bool> vektörüne alternatif
Hepimizin bildiği gibi (umarım) vector&lt;bool&gt;, tamamen bozuktur ve bir C dizisi olarak ele alınamaz. Bu işlevi almanın en iyi yolu nedir? Şimdiye kadar düşündüğüm fikirler: vector&lt;char&gt;Bunun yerine a kullanın veya Bir sarmalayıcı sınıfı kullanın ve vector&lt;bool_wrapper&gt; Siz bu sorunu nasıl çözüyorsunuz? c_array()İşlevselliğe ihtiyacım var . Bir yan soru olarak, c_array()yönteme …
92 c++  stl  vector  boolean 

6
C ++ 'da ilk vektör kapasitesi
Ne capacity()bir bir std::vectorvarsayılan constuctor kullanılarak oluşturulduğu? size()Sıfır olduğunu biliyorum . Varsayılan olarak oluşturulmuş bir vektörün yığın bellek ayırma çağırmadığını söyleyebilir miyiz? Bu şekilde, tek bir ayırma kullanarak keyfi bir rezerve sahip bir dizi oluşturmak mümkün olacaktır std::vector&lt;int&gt; iv; iv.reserve(2345);. Diyelim ki bir sebepten dolayı size()2345'ten başlamak istemiyorum . Örneğin, …

6
Find metodunu kullandıktan sonra std :: map nasıl güncellenir?
Yöntemi std::mapkullandıktan sonra bir anahtarın değeri nasıl güncellenir find? Bunun gibi bir harita ve yineleyici bildirimim var: map &lt;char, int&gt; m1; map &lt;char, int&gt;::iterator m1_it; typedef pair &lt;char, int&gt; count_pair; Bir karakterin oluşum sayısını saklamak için haritayı kullanıyorum. Visual C ++ 2010 kullanıyorum.
92 c++  map  stl  stdmap 

2
Neden std :: stack varsayılan olarak std :: deque kullanıyor?
Bir konteynerin yığın içinde kullanılması için gereken tek işlemler şunlardır: geri() Geri itmek() pop_back () Neden bunun için varsayılan konteyner bir vektör yerine bir deque? Yeniden tahsisleri geri ayırma, push_front () işlevinin verimli bir işlem olması için front () öğesinden önce bir öğe tamponu vermez mi? Asla bir yığın bağlamında …
91 c++  stl  containers 


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.