«c++-standard-library» etiketlenmiş sorular

C ++ programlama dilinde, C ++ Standart Kitaplığı, çekirdek dilde yazılan veya yazılmayan ve C ++ 'nın bir parçası olan sınıflar ve işlevlerin bir koleksiyonudur.



5
“STL” ve “C ++ Standart Kütüphane” arasındaki fark nedir?
Birisi bu makaleyi dikkat çektiğimde , STL teriminin SGI STL'den alınan parçalar yerine tüm C ++ Standart Kütüphanesine atıfta bulunmak için yanlış kullanıldığını iddia ediyorum . (...) hala çok az insanın (SGI'de tasarlanan) STL'yi kullanmasına rağmen "STL" yi ifade eder. C ++ Standart Kütüphanesinin bölümleri STL'nin bölümlerine dayanıyordu ve bu …

9
C ++ valarray ve vektör
Vektörleri çok seviyorum. Şık ve hızlılar. Ama bir valarray denen şeyin var olduğunu biliyorum. Neden vektör yerine valarray kullanayım? Valarrailerin bazı sözdizimsel şekerleri olduğunu biliyorum, ama bunun dışında ne zaman yararlılar?

8
Yineleme sırasında std :: set'den eleman silme
Bir kümeden geçmem ve önceden tanımlanmış bir kriteri karşılayan öğeleri kaldırmam gerekiyor. Bu yazdığım test kodu: #include <set> #include <algorithm> void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; std::set<int> …


2
Libc ++ 'da kısa dizgi optimizasyonunun mekaniği nelerdir?
Bu cevap , kısa dizgi optimizasyonuna (SSO) ilişkin güzel bir üst düzey genel bakış sunar. Bununla birlikte, pratikte, özellikle libc ++ uygulamasında nasıl çalıştığını daha ayrıntılı olarak bilmek isterim: SSO'ya hak kazanmak için dizenin ne kadar kısa olması gerekir? Bu hedef mimariye bağlı mı? Dize verilerine erişirken uygulama, kısa ve …



1
Libc ++ 'nın <bool> :: const_reference vektörü neden bool değil?
Bölüm 23.3.7 Sınıf vector&lt;bool&gt;[vector.bool], paragraf 1 şunu belirtir: template &lt;class Allocator&gt; class vector&lt;bool, Allocator&gt; { public: // types: typedef bool const_reference; ... Ancak bu program libc ++ kullanırken derleme yapamaz: #include &lt;vector&gt; #include &lt;type_traits&gt; int main() { static_assert(std::is_same&lt;std::vector&lt;bool&gt;::const_reference, bool&gt;{}, "?"); } Ayrıca, C ++ standardının bu spesifikasyonda C ++ 98'e …

4
Modern C ++ 'ın deneysel özellikleri uzun vadeli projeler için güvenilir midir?
Şu anda C ++ 11/14 kullanan bir projem var, ancak std::filesystemsadece C ++ 17'de mevcut olan gibi bir şey gerektiriyor ve bu nedenle şu anda onu kullanma şansım yok. Bununla birlikte, mevcut derleyicimde olarak mevcut olduğunu görüyorum std::experimental::filesystem. Gelecekte aşağıdakilere benzer bir şey ekleyebileceğimi varsayarak deneysel özellikleri kullanmak iyi bir …

9
C ++ standart kitaplığında neden transform_if yok?
Koşullu bir kopya yapmak istendiğinde (1. ile yapılabilir copy_if), ancak bir değerler konteynerinden bu değerlere yönelik bir işaretçi konteynerine (2. ile yapılabilir transform) bir kullanım durumu ortaya çıktı . Mevcut araçlarla bunu iki adımdan daha kısa sürede yapamıyorum : #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; struct ha { int …

2
Birçok standart kitaplık türü için neden C ++ 20'de operatör! = Kaldırıldı?
Cppreference göre , std::type_info::operator!=C ++ 20 ile kaldırılır, ancak std::type_info::operator==görünüşe göre kalır. Arkasındaki sebep nedir? Eşitsizliğin anlamsız olduğunu karşılaştırmayı kabul edebilirim, ama sonra eşitliği karşılaştırmak da anlamsız olurdu, değil mi? Benzer bir şekilde, operator!=bu gibi kaplar da dahil olmak üzere diğer pek çok standart kütüphane türlerinin std::unordered_map::operator!=ve std::unordered_set::operator!=cppreference göre 20 …


2
`Std :: string :: find ()` neden hatalarda son yineleyiciyi döndürmüyor?
Davranışını std::string::findstandart C ++ kaplarıyla tutarsız buluyorum . Örneğin std::map&lt;int, int&gt; myMap = {{1, 2}}; auto it = myMap.find(10); // it == myMap.end() Ama bir ip için, std::string myStr = "hello"; auto it = myStr.find('!'); // it == std::string::npos Başarısız myStr.find('!')iade neden myStr.end()yerine neden olmasın std::string::npos? Yana std::stringbaşka kaplarla karşılaştırıldığında …

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.