«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.


5
Özel std :: set karşılaştırıcı kullanma
На этот вопрос есть ответы на Stack Overflow için русском : Компаратор для set Bir tamsayı kümesindeki öğelerin varsayılan sırasını sayısal yerine sözlükbilimsel olacak şekilde değiştirmeye çalışıyorum ve aşağıdakileri g ++ ile derleyemiyorum: file.cpp: bool lex_compare(const int64_t &a, const int64_t &b) { stringstream s1,s2; s1 << a; s2 << b; …
110 c++  stl 

6
Bir fonksiyondan bir 'vektör' döndürmek neden uygundur?
Lütfen bu kodu dikkate alın. Bu tür bir kodu defalarca gördüm. wordsyerel bir vektördür. Onu bir fonksiyondan döndürmek nasıl mümkün olabilir? Ölmeyeceğini garanti edebilir miyiz? std::vector<std::string> read_file(const std::string& path) { std::ifstream file("E:\\names.txt"); if (!file.is_open()) { std::cerr << "Unable to open file" << "\n"; std::exit(-1); } std::vector<string> words;//this vector will be …

4
Nesneleri, özellikle STL nesnelerini bir DLL'ye ve DLL'den nasıl güvenle geçirebilirim?
Sınıf nesnelerini, özellikle STL nesnelerini bir C ++ DLL'ye / DLL'den nasıl geçirebilirim? Uygulamamın DLL dosyaları biçiminde üçüncü taraf eklentilerle etkileşime girmesi gerekiyor ve bu eklentilerin hangi derleyiciyle oluşturulduğunu kontrol edemiyorum. STL nesneleri için garantili ABI olmadığının farkındayım ve uygulamamda kararsızlığa neden olmaktan endişe duyuyorum.
106 c++  windows  dll  stl  abi 

9
"Kullanışlı" bir C ++ ikili arama algoritmasını nereden edinebilirim?
std::binary_searchStandart kitaplığın <algorithm>başlığında olduğu gibi, C ++ STL kapsayıcılarıyla uyumlu bir ikili arama algoritmasına ihtiyacım var , ancak öğenin var olup olmadığını söyleyen basit bir boole değil, sonucu işaret eden yineleyiciyi döndürmek için ona ihtiyacım var. (Bir yan not olarak, standart komite binary_search için API'yi tanımlarken ne düşünüyordu ?!) Buradaki …



6
Vektör <bool> neden bir STL kapsayıcısı değil?
Scott Meyers'in Etkili STL kitabının 18. Maddesi : Standart Şablon Kütüphanesi Kullanımınızı Geliştirmenin 50 Özel Yolu,vector &lt;bool&gt; bir STL konteyneri olmadığı ve gerçekten bools tutmadığı için kaçınmanız gerektiğini söylüyor . Aşağıdaki kod: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; STL kapsayıcılarının bir gerekliliğini ihlal ederek derlenmez. Hata: cannot convert 'std::vector&lt;bool&gt;::reference* {aka …

10
Std :: set neden "içerir" üye işlevine sahip değil?
Yoğun bir şekilde kullanıyorum std::set&lt;int&gt;ve çoğu zaman böyle bir setin bir sayı içerip içermediğini kontrol etmem gerekiyor. Yazmayı doğal buluyorum: if (myset.contains(number)) ... Ancak bir containsüye olmadığı için hantal yazmam gerekiyor: if (myset.find(number) != myset.end()) .. veya o kadar bariz değil: if (myset.count(element) &gt; 0) .. Bu tasarım kararının bir …
103 c++  stl  stdset 

6
string c_str () ile data ()
Birkaç yer okudum ki, c_str()ve data()(STL ve diğer uygulamalardaki) arasındaki fark c_str()her zaman null sonlandırılırken data()değil. Gerçek uygulamalarda gördüğüm kadarıyla ya aynı şeyi yapıyorlar ya da data()çağırıyorlar c_str(). Burada neyi özlüyorum? Hangi senaryolarda hangisi daha doğrudur?
102 c++  stl  c-str 

4
C ++ const harita öğesi erişimi
Bir const C ++ haritasındaki öğeye [] erişim işlecini kullanmayı denedim, ancak bu yöntem başarısız oldu. Ben de aynı şeyi yapmak için "at ()" kullanmayı denedim. Bu sefer işe yaradı. Ancak, const C ++ haritasındaki öğeye erişmek için "at ()" kullanımı hakkında herhangi bir başvuru bulamadım. "At ()" C ++ …
102 c++  stl  map  const 

5
Bir vektörden öğeleri silme
Silme yöntemini kullanarak bir vektörden bir öğeyi temizlemek istiyorum. Ancak buradaki sorun, elementin vektörde yalnızca bir kez meydana gelmesinin garanti edilmemesidir. Birden çok kez mevcut olabilir ve hepsini temizlemem gerekiyor. Kodum şuna benzer: void erase(std::vector&lt;int&gt;&amp; myNumbers_in, int number_in) { std::vector&lt;int&gt;::iterator iter = myNumbers_in.begin(); std::vector&lt;int&gt;::iterator endIter = myNumbers_in.end(); for(; iter != …
101 c++  vector  stl  erase 


3
Gcc std :: unordered_map uygulaması yavaş mı? Öyleyse neden?
C ++ ile yüksek performanslı kritik bir yazılım geliştiriyoruz. Orada eşzamanlı bir hash haritasına ihtiyacımız var ve bir tane uyguluyoruz. Bu nedenle, eşzamanlı hash haritamızın ne kadar yavaş olduğunu anlamak için bir kıyaslama yazdık std::unordered_map. Ancak, std::unordered_mapinanılmaz derecede yavaş görünüyor ... Yani bu bizim mikro ölçütümüz (eşzamanlı harita için kilitlemenin …

2
Std :: ssize () neden C ++ 20'de tanıtıldı?
C ++ 20std::ssize() , aşağıdaki gibi ücretsiz işlevi tanıttı : template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; Cl ass C üye fonksiyonunun static_castdönüş değerini dönüştürmek için olası bir uygulama kullanıyor gibi görünüyorsize() imzalı karşılığına . Yana size()C üyesi fonksiyonu daima negatif olmayan değerleri döndürür, neden kimse …
99 c++  stl  unsigned  signed  c++20 

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.