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

7
Bir vektördeki bir öğeyi silmek () çalışmaz
Bir vektörüm var. İçindeki son 3 öğeyi silmem gerekiyor. Bu mantığı açıkladı. Program çöküyor. Hata ne olabilir? vector<float>::iterator d = X.end(); for (size_t i = 1; i < 3; i++) { if (i == 1) X.erase(d); else X.erase(d - i); }
10 c++  vector 

1
C ++ 'da bir değişken aracılığıyla yapıdaki bir üyeye erişme
İki üye ile bir yapı var, örneğin: struct DataSet { int x; int y; }; ..., ve ben bir yöntemde, ancak her seferinde sadece bir tane erişmek zorunda, örneğin: void foo(StructMember dsm) { // ("StructMember" does not exist) DataSet ds; ds.x = 4; ds.y = 6; std::cout << ds.dsm * …
10 c++ 

2
C ++ şablon şablonu bağımsız değişken türleri kesinti
Ben bulur ve dizeleri konteyner üzerinde gidiyor gibi bir desen maçlar yazdırır kodu var. Baskı işlevi gerçekleştirilir foo şablonlu edilir Kod #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <tuple> #include <utility> template<typename Iterator, template<typename> class Container> void foo(Iterator first, Container<std::pair<Iterator, Iterator>> const &findings) { for (auto …

1
Neden std :: span karşılaştırma işleçlerinden yoksundur?
Değil miydi std::spanalt bölgelere hafif referans olarak tasarlanmış std::vector/ std::array/ düz diziye ve benzeri? Ayrıca, API'larında tutarlı olmaları için karşılaştırma operatörleri içermemeli midir? Dışlamanın ardındaki neden neydi? Not: Karşılaştırma operatörleri tarafından, ben de tamamı anlamında ( <, <=, ...) ya da uzay gemisi<=>
10 c++  std  c++20  std-span 

1
Ayrılan depolama birimindeki işaretçi aritmetiğine C ++ 20'den beri izin veriliyor mu?
C ++ 20 standardında, dizi türlerinin örtük ömür boyu tür olduğu söylenir . Örtük olmayan bir ömür boyu türüne sahip bir dizinin dolaylı olarak oluşturulabileceği anlamına mı geliyor? Örtülü bir dizinin oluşturulması dizinin öğelerinin oluşturulmasına neden olmaz mı? Bu durumu düşünün: //implicit creation of an array of std::string //but not …

1
Aralıklar neden boru kitaplığı işlevselliği için kullanılamaz?
Jonathan Boccara ( Fluent C ++ yazarı ) pipe adlı bir kütüphane yazdı . Deponun ana sayfasında yer alan bu "borular", aynı görünse bile aralıkların kullanımı gibi değildir: Tembel çekmeye değil, daha çok itmeye dayalıdır. Ancak, çeşitli 'boru' işlemleri gerçekleştirmek için aralık kütüphanesini kullanamayacağı belirtilmektedir . Örneğin: unzip - Sıkıştırılmış …

3
Farklı derleyicilerde C ++ ve C arasındaki işaretsiz bitfield tamsayı ifadelerinin tutarsız kesilmesi
Düzenle 2 : Bir işlev daha önce bir C ++ kaynak dosyasında bulunan ancak bir C dosyasına kelimesi kelimesine taşındığında, yanlış sonuçlar döndürmeye başladığında garip bir test hatası ayıklama. Aşağıdaki MVE, sorunun GCC ile yeniden üretilmesine izin verir. Ancak, bir hevesle, örneği Clang ile (ve daha sonra VS ile) derlediğimde, …

3
Nullptr uintptr_t biçimine dönüştürülebilir mi? Farklı derleyiciler katılmıyor
Bu programı düşünün: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Msvc v19.24 ile derlenemedi: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type …
10 c++  c++11  gcc  visual-c++  clang 

1
Concept TS kontrolü özel erişim değiştiriciyi yok sayar
Bir dizini RandomAccessIterator döndüren başlangıç ​​/ bitiş ya da işleç [] tanımlanmış ve geçersiz türü olmayan bir değer döndürdüğü anlamına gelen dizinlenebilir bir kavram yazmak istiyorum. Sıra kavramı için Stroustrup'un makalesindeki fikirleri kullandım ve aşağıdakilerle arttırdım: template <class T> concept bool Indexable = Sequence<T> || requires(T t, size_t n) { …
10 c++  c++-concepts 

1
Şablon şablonu sınıfıyla GCC / C ++ 17'de sorun
Aşağıdaki aşırı yüklenmeleri göz önünde bulundurun template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } Birincisi normal sınıflar için, ikincisi ise örneklenmemiş şablonlar için çalışır. Örneğin: std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields 0 Şimdi aşağıdaki şablon işlevini göz önünde …
10 c++  templates  gcc  clang  c++17 

4
Neden main () 'dan NULL döndürüyoruz?
Bazen C ve C ++ programlarında NULLdönüş değeri olarak kullanılan kodlayıcılar, main()örneğin böyle bir şey görüyorum : #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } Bu kodu gcc ile derlediğimde şu uyarıyı alıyorum: uyarı: return, işaretçi olmadan tamsayı yapar [-Wint-conversion] Bu makuldür çünkü makro NULLgenişler (void*) 0ve ana dönüş …
10 c++  c  null  return  return-value 


1
C ++ 20'de görünümleri olan kaplar oluşturabilecek miyiz?
C ++ 20 standart sürümü ile aralıklar C ++ 'a geliyor. Benim sorum: Herhangi bir aralıkta standart kütüphane kapları (mevcut) oluşturabilecek miyiz? Ve daha da önemlisi, menzil görünümleriyle? Örneğin, bu: #include <vector> #include <iostream> #include <ranges> int main() { auto sq = [](int x) { return x * x; }; …
10 c++  c++20  range-v3 

1
Unordered_map :: sırasında bellek sızıntısı
GCC 7.3.1 kullanıyorum, ancak 9.2.0 sürümü olduğuna inandığım coliru üzerinde de test yaptım. Aşağıdakilerle derleyin: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp İşte rai.cpp: #include <iostream> #include <unordered_map> int main() { try { struct MyComp { bool operator()(const std::string&, const std::string&) const { throw std::runtime_error("Nonono"); } }; std::unordered_map<std::string, std::string, std::hash<std::string>, MyComp> mymap; mymap.insert(std::make_pair("Hello", …


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.