«c++-faq» etiketlenmiş sorular

Ortak, topluluk tarafından düzenlenmiş bir C ++ SSS sağlar

4
Std :: swap () nasıl aşırı yüklenir
std::swap()birçok standart konteyner tarafından kullanılır (örneğin std::listvestd::vector ) tarafından sıralama ve hatta atama sırasında kullanılır. Ancak swap()öğesinin standart uygulaması çok genelleştirilmiştir ve özel türler için oldukça verimsizdir. Böylece, std::swap()özel tipe özgü bir uygulama ile aşırı yükleme ile verimlilik elde edilebilir . Ancak, standart konteynerler tarafından kullanılması için onu nasıl uygulayabilirsiniz?

7
Optimizasyon etkinken farklı kayan nokta sonucu - derleyici hatası?
Aşağıdaki kod, Visual Studio 2008 üzerinde optimizasyonlu ve optimizasyonsuz çalışır. Ancak, optimizasyon olmadan yalnızca g ++ üzerinde çalışır (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << t << std::endl; double …
109 c++  optimization  g++  c++-faq 

3
Std :: getline () biçimlendirilmiş bir ayıklamadan sonra girişi neden atlar?
Kullanıcıdan adını ve durumunu soran aşağıdaki kod parçasına sahibim: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << state; } } Bulduğum şey, adın …
109 c++  input  iostream  istream  c++-faq 

4
Şeffaf karşılaştırıcılar nedir?
C ++ 14'te, ilişkilendirilebilir kapsayıcılar C ++ 11'den değişmiş gibi görünüyor - [Associative.reqmts] / 13 diyor ki: Üye işlev şablonları find, count, lower_bound, upper_bound, ve equal_rangetip sürece aşırı yük çözünürlükte katılamazlar Compare::is_transparentbulunmaktadır. Bir karşılaştırıcıyı "şeffaf" yapmanın amacı nedir? C ++ 14 ayrıca aşağıdaki gibi kitaplık şablonları sağlar: template <class T …
106 c++  c++14  c++-faq 

3
Neden basit bir "Hello World" tarzı program Turbo C ++ ile derlenmiyor?
Programlama sınıfım için C ++ öğrenmeye başladım. Bu "Merhaba Dünya" programını indirdim: #include <iostream> using namespace std; int main() { cout << "Hello, World!"; return 0; } ancak Turbo C ++ şikayet ediyor: Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM' Error D:\HELLO.CPP 2: Declaration syntax error Error D:\HELLO.CPP …
101 c++  turbo-c++  c++-faq 

4
Cout << a ++ << a ;? için doğru cevap nedir?
Son zamanlarda bir röportajda aşağıdaki nesnel tipte bir soru vardı. int a = 0; cout &lt;&lt; a++ &lt;&lt; a; Yanıtlar: a. 10 b. 01 c. tanımlanmamış davranış B seçeneğini yanıtladım, yani çıktı "01" olacaktır. Ancak daha sonra bir görüşmeci tarafından bana sürpriz olarak doğru cevabın c: tanımsız seçeneği olduğu söylendi. …
98 c++  c++-faq 

17
İşlev işaretçilerinin amacı nedir?
İşlev işaretçilerinin faydasını görmekte güçlük çekiyorum. Bazı durumlarda faydalı olabileceğini tahmin ediyorum (sonuçta varlar), ancak bir işlev işaretçisi kullanmanın daha iyi veya kaçınılmaz olduğu bir durum düşünemiyorum. İşlev işaretçilerinin (C veya C ++ 'da) iyi kullanımına ilişkin bazı örnekler verebilir misiniz?
96 c++  c  function  pointers  c++-faq 

16
C ++ 'da dairesel kaydırma (döndürme) işlemleri için en iyi uygulamalar
Sol ve sağ kaydırma operatörleri (&lt;&lt; ve &gt;&gt;) C ++ 'da zaten mevcuttur. Ancak dairesel kaydırma veya döndürme işlemlerini nasıl yapacağımı bulamadım. "Sola Döndür" ve "Sağa Döndür" gibi işlemler nasıl yapılabilir? Burada iki kez sağa döndürülüyor Initial --&gt; 1000 0011 0100 0010 şunlarla sonuçlanmalıdır: Final --&gt; 1010 0000 1101 0000 …


2
Ekstra parantezlerin operatör önceliği dışında ne zaman bir etkisi olur?
C ++ 'daki parantezler birçok yerde kullanılır: örneğin, operatör önceliğini geçersiz kılmak için işlev çağrılarında ve ifadeleri gruplandırmada. Geçersiz fazladan parantezlerin (işlev çağrısı bağımsız değişken listeleri etrafındaki gibi) dışında, C ++ 'nın genel -ama mutlak değil- kuralı, ekstra parantezlerin asla zarar vermemesidir : 5.1 Birincil ifadeler [ifade.prim] 5.1.1 Genel [expr.prim.general] …

3
"Olduğu gibi" kuralı tam olarak nedir?
Başlığın dediği gibi, "Olduğu gibi" kuralı tam olarak nedir? Alınacak tipik bir cevap şudur: Programın gözlemlenebilir davranışını değiştirmeyen tüm kod dönüşümlerine izin veren kural Zaman zaman bu kurala atfedilen belirli uygulamalardan davranışlar almaya devam ediyoruz. Çoğu zaman yanlış. Peki bu kural tam olarak nedir? Standart, bu kuralı bir bölüm veya …
90 c++  c  optimization  c++-faq  as-if 

5
Paylaşılan işaretçileri bağımsız değişken olarak aktarma
Paylaşılan bir işaretçiye sarılmış bir nesne bildirirsem: std::shared_ptr&lt;myClass&gt; myClassObject(new myClass()); sonra bunu bir yönteme argüman olarak aktarmak istedim: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr&lt;myClass&gt; arg1) { arg1-&gt;someField = 4; } Yukarıdakiler, paylaşılan_pt'nin referans sayısını artırıyor ve her şey yolunda mı? Yoksa sallanan bir işaretçi mi bırakıyor? Hala bunu yapmanız gerekiyor …

1
Şablon kesinti kılavuzları nelerdir ve bunları ne zaman kullanmalıyız?
C ++ 17 standardı "şablon kesinti kılavuzlarını" sunar. Standardın bu sürümünde tanıtılan kurucular için yeni şablon argüman çıkarımı ile ilgili olduklarını anlıyorum, ancak henüz ne oldukları ve ne için oldukları konusunda basit, SSS tarzı bir açıklama görmedim. C ++ 17'de şablon kesinti kılavuzları nelerdir? Neden (ve ne zaman) onlara ihtiyacımız …

2
gcc / g ++: "Böyle bir dosya veya dizin yok"
g++ bana şu biçimde hatalar veriyor: foo.cc:&lt;line&gt;:&lt;column&gt;: fatal error: &lt;bar&gt;: No such file or directory compilation terminated. C programları ile derlerken de aynıdır gcc. Neden? Lütfen dikkat: Bu soru daha önce birçok kez sorulmuştu, ancak her seferinde soran kişinin durumuna özeldi. Bu sorunun amacı, başkalarının bir kerede ve tamamen kopyaları …
88 c++  c  gcc  g++  c++-faq 


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.