Pertanyaan yang diberi tag «stl»

Standard Template Library, atau STL, adalah pustaka C ++ dari wadah generik, iterator, algoritma, dan objek fungsi. Ketika C ++ distandarisasi, sebagian besar STL diadopsi ke dalam Perpustakaan Standar, dan bagian-bagian ini di Perpustakaan Standar juga kadang-kadang keliru disebut secara kolektif sebagai "STL".

7
Mengapa kita tidak bisa mendeklarasikan std :: vector <AbstractClass>?
Setelah menghabiskan cukup banyak waktu untuk mengembangkan C #, saya perhatikan bahwa jika Anda mendeklarasikan kelas abstrak untuk tujuan menggunakannya sebagai antarmuka, Anda tidak dapat membuat contoh vektor kelas abstrak ini untuk menyimpan instance kelas anak. #pragma once #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class IFunnyInterface { public: virtual …

3
bagaimana cara menyediakan fungsi swap untuk kelas saya?
Apa cara yang tepat untuk mengaktifkan swapalgoritma STL saya ? 1) Anggota swap. Apakah std::swapmenggunakan trik SFINAE untuk menggunakan anggota swap. 2) Berdiri bebas swapdi namespace yang sama. 3) Spesialisasi parsial std::swap. 4) Semua hal di atas. Terima kasih. EDIT: Sepertinya saya tidak mengucapkan pertanyaan saya dengan jelas. Pada dasarnya, …
89 c++  algorithm  stl  swap 


4
Wadah STL dengan jenis tertentu sebagai argumen umum
Apakah ada cara saya bisa membuat fungsi yang mengambil wadah dengan tipe tertentu (katakanlah std::string) sebagai parameter void foo(const std::container&lt;std::string&gt; &amp;cont) { for(std::string val: cont) { std::cout &lt;&lt; val &lt;&lt; std::endl; } } dan menyebutnya untuk setiap jenis wadah stl sebagai input? seperti diatas? std::set&lt;std::string&gt; strset; std::vector&lt;std::string&gt; strvec; std::list&lt;std::string&gt; strlist; …

4
Apakah valid menggunakan std :: transform with std :: back_inserter?
Cppreference memiliki kode contoh ini untuk std::transform: std::vector&lt;std::size_t&gt; ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -&gt; std::size_t { return c; }); Tetapi juga dikatakan: std::transformtidak menjamin aplikasi unary_opatau binary_op. Untuk menerapkan fungsi ke urutan secara berurutan atau menerapkan fungsi yang memodifikasi elemen urutan, gunakan std::for_each. Ini mungkin untuk memungkinkan implementasi …

3
Cara kompilasi waktu untuk menentukan jenis argumen yang paling murah
Saya memiliki template yang terlihat seperti ini template &lt;typename T&gt; class Foo { public: Foo(const T&amp; t) : _t(t) {} private: const T _t; }; Apakah ada cara pemrograman cerdas template untuk menghindari menggunakan referensi const dalam kasus di mana jenis argumen sepele seperti bool atau char? Suka: Foo(stl::smarter_argument&lt;T&gt;::type t) …
15 c++  stl 



3
Bisakah saya menggunakan std :: transform di tempat dengan kebijakan eksekusi paralel?
Jika saya tidak salah, saya dapat melakukan std::transformperform di tempat dengan menggunakan rentang yang sama sebagai input dan output iterator. Anggaplah saya memiliki beberapa std::vectorobjek vec, maka saya akan menulis std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) menggunakan operasi unary yang cocok unary_op. Menggunakan standar C ++ 17, saya ingin menjalankan transformasi secara paralel dengan menempelkannya …

1
Kebocoran memori selama unordered_map :: masukkan pengecualian KeyEqual dengan GCC - melanggar jaminan keamanan pengecualian yang kuat?
Saya menggunakan GCC 7.3.1, tetapi juga diuji pada coliru, yang saya percaya adalah versi 9.2.0. Bangun dengan yang berikut: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Inilah rai.cpp: #include &lt;iostream&gt; #include &lt;unordered_map&gt; int main() { try { struct MyComp { bool operator()(const std::string&amp;, const std::string&amp;) const { throw std::runtime_error("Nonono"); } }; std::unordered_map&lt;std::string, std::string, …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.