«c++» etiketlenmiş sorular

C ++ genel amaçlı bir programlama dilidir. Başlangıçta C'nin bir uzantısı olarak tasarlanmıştır ve benzer bir sözdizimine sahiptir, ancak şimdi tamamen farklı bir dildir. Bir C ++ derleyicisiyle derlenecek kod (sorulacak) ile ilgili sorular için bu etiketi kullanın. Belirli bir standart revizyon [C ++ 11], [C ++ 14], [C ++ 17] veya [C ++ 20] vb. İle ilgili sorular için sürüme özgü bir etiket kullanın.

1
Std :: launder'ın amacı nedir?
P0137 , fonksiyon şablonunu sunar std::launderve sendikalar, ömür boyu ve işaretçilerle ilgili bölümlerde standartta birçok, çok değişiklik yapar. Bu makalenin çözdüğü sorun nedir? Farkında olmam gereken dilde değişiklikler nelerdir? Ve ne yapıyoruz launder?


21
C ++ işlevinden birden çok değer döndürme
C ++ işlevinden birden çok değer döndürmenin tercih edilen bir yolu var mı? Örneğin, iki tamsayıyı bölen ve hem bölümü hem de geri kalanını döndüren bir fonksiyon düşünün. Yaygın olarak gördüğüm bir yol, referans parametreleri kullanmaktır: void divide(int dividend, int divisor, int& quotient, int& remainder); Bir varyasyon bir değeri döndürüp …
242 c++ 


6
Adsız ad alanları neden kullanılır ve faydaları nelerdir?
Yeni bir C ++ yazılım projesine katıldım ve tasarımı anlamaya çalışıyorum. Proje, isimsiz ad alanlarını sıkça kullanmaktadır. Örneğin, bir sınıf tanımı dosyasında böyle bir şey olabilir: // newusertype.cc namespace { const int SIZE_OF_ARRAY_X; const int SIZE_OF_ARRAY_Y; bool getState(userType*,otherUserType*); } newusertype::newusertype(...) {... Adsız bir ad alanı kullanmasına neden olabilecek tasarım konuları …
242 c++  oop  namespaces 

21
Bir C ++ std :: dizesinin belirli bir dizeyle başlayıp başlamamasını nasıl kontrol ederim ve bir alt dizeyi int'e dönüştürürüm?
C ++ 'da (Python sözde kodu) nasıl uygularım? if argv[1].startswith('--foo='): foo_value = int(argv[1][len('--foo='):]) (Örneğin, argv[1]bir --foo=98sonra foo_valueise 98). Güncelleme: Boost'a bakmaktan çekiniyorum, çünkü basit bir küçük komut satırı aracında çok küçük bir değişiklik yapmaya çalışıyorum (bir minör için Boost'u nasıl bağlayacağınızı ve kullanacağınızı öğrenmek istemem değişiklik).

4
(-2147483648> 0) C ++ 'da true değerini döndürür?
-2147483648, 32 bitli tamsayı türü için en küçük tamsayıdır, ancak if(...)cümlede taşacak gibi görünüyor : if (-2147483648 > 0) std::cout << "true"; else std::cout << "false"; Bu truebenim testimde yazdırılacak . Ancak, -2147483648 değerini tamsayıya kullanırsak sonuç farklı olur: if (int(-2147483648) > 0) std::cout << "true"; else std::cout << "false"; …


12
C ++ 'da çok hızlı bir ikili dosya yazma
SSD (katı hal sürücüsü) üzerine büyük miktarda veri yazmaya çalışıyorum. Ve büyük miktarlarda 80GB demek istiyorum. Çözümler için web'e göz attım, ancak en iyi buldum: #include <fstream> const unsigned long long size = 64ULL*1024ULL*1024ULL; unsigned long long a[size]; int main() { std::fstream myfile; myfile = std::fstream("file.binary", std::ios::out | std::ios::binary); //Here …

6
Özel yineleyiciler ve const_iterators nasıl doğru şekilde uygulanır?
Ben yazmak istiyorum özel bir konteyner sınıfı var iteratorveconst_iterator sınıfları . Bunu daha önce hiç yapmadım ve uygun bir nasıl yapıldığını bulamadım. Yineleyici oluşturma ile ilgili yönergeler nelerdir ve nelere dikkat etmeliyim? Ayrıca kod çoğaltma önlemek istiyorum (bunu hissediyorum const_iteratorveiterator birçok şey paylaşmak; biri diğerine alt sınıf mı?). Dipnot: Eminim …





12
Bir std :: listesinden öğeleri yineleyerek kaldırabilir misiniz?
Şuna benzeyen bir kod var: for (std::list<item*>::iterator i=items.begin();i!=items.end();i++) { bool isActive = (*i)->update(); //if (!isActive) // items.remove(*i); //else other_code_involving(*i); } items.remove_if(CheckItemNotActive); Listeyi tekrar yürümekten kaçınmak için etkin olmayan öğeleri güncelledikten hemen sonra kaldırmak istiyorum. Ancak yorum satırları eklerseniz, i++"Liste yineleyici artırılmaz değil" aldığımda bir hata alıyorum . For ifadesinde artmayan …
239 c++  list  std 

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.