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


6
Bagaimana cara menentukan penunjuk ke fungsi yang kelebihan beban?
Saya ingin meneruskan fungsi yang kelebihan beban ke std::for_each()algoritme. Sebagai contoh, class A { void f(char c); void f(int i); void scan(const std::string& s) { std::for_each(s.begin(), s.end(), f); } }; Saya mengharapkan kompiler untuk menyelesaikan f()dengan tipe iterator. Rupanya, itu (GCC 4.1.2) tidak melakukannya. Jadi, bagaimana saya bisa menentukan mana …
139 c++  stl 

5
C ++ Operator Alamat Ganda? (&&)
Saya membaca kode sumber STL dan saya tidak tahu apa &&yang seharusnya dilakukan oleh operator alamat. Ini adalah contoh kode dari stl_vector.h: vector& operator=(vector&& __x) // <-- Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } Apakah "Alamat Alamat" masuk akal? Mengapa ia memiliki dua …

3
Apa yang terjadi jika Anda memanggil hapus () pada elemen peta saat iterasi dari awal hingga akhir?
Dalam kode berikut ini saya loop melalui peta dan menguji apakah suatu elemen perlu dihapus. Apakah aman untuk menghapus elemen dan tetap mengulanginya atau apakah saya perlu mengumpulkan kunci di wadah lain dan melakukan putaran kedua untuk memanggil penghapusan ()? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it = port_map.begin(); pm_it != port_map.end(); …
133 c++  stl  iterator 


2
Bagaimana cara mengatur ukuran awal std :: vector?
Saya punya vector<CustomClass*>dan saya meletakkan banyak item dalam vektor dan saya perlu akses cepat, jadi saya tidak menggunakan daftar. Bagaimana cara mengatur ukuran awal vektor (misalnya menjadi 20.000 tempat, jadi untuk menghindari salinan ketika saya memasukkan baru)?
130 c++  stl 

7
Mengapa std :: queue :: pop mengembalikan nilai.?
Saya membuka halaman ini tetapi saya tidak bisa mendapatkan alasan yang sama. Di sana disebutkan itu "lebih bijaksana untuk tidak mengembalikan nilai sama sekali dan meminta klien menggunakan front () untuk memeriksa nilai di depan antrean" Tapi memeriksa elemen dari front () juga membutuhkan elemen itu untuk disalin di lvalue. …
123 c++  stl 




13
remove_if setara dengan std :: map
Saya mencoba menghapus berbagai elemen dari peta berdasarkan kondisi tertentu. Bagaimana cara melakukannya menggunakan algoritma STL? Awalnya saya berpikir untuk menggunakan remove_iftetapi tidak mungkin karena remove_if tidak berfungsi untuk wadah asosiatif. Apakah ada algoritme setara "remove_if" yang berfungsi untuk peta? Sebagai opsi sederhana, saya berpikir untuk mengulang melalui peta dan …
118 c++  stl  map 


4
Cara membebani std :: swap ()
std::swap()digunakan oleh banyak kontainer std (seperti std::listdan std::vector) selama penyortiran dan bahkan penugasan. Tetapi implementasi std swap()sangat umum dan agak tidak efisien untuk tipe kustom. Dengan demikian, efisiensi dapat diperoleh dengan membebani std::swap()dengan implementasi khusus tipe kustom. Tetapi bagaimana Anda bisa menerapkannya sehingga akan digunakan oleh kontainer std?

5
C ++ map access membuang qualifier (const)
Kode berikut mengatakan bahwa meneruskan peta constke dalam operator[]metode membuang qualifier: #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << mw.get_value(42) << endl; return …
113 c++  stl  const  maps 

9
Apa cara yang disukai / idiomatik untuk dimasukkan ke dalam peta?
Saya telah mengidentifikasi empat cara berbeda untuk memasukkan elemen ke dalam std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); Manakah dari itu yang lebih disukai / cara idiomatik? (Dan apakah ada cara lain yang belum saya pikirkan?)
113 c++  stl  insert  stdmap  std-pair 

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.