Tag: initializer-list
std::initializer_list ist ein spezieller Typ, der in C++11 verwendet, zum erstellen von Containern und anderen Arten aus einer Liste von Werten des gleichen Typs. Kann implementiert werden als ein paar von Zeiger oder Zeiger und die Länge, und sein Speicher kann die automatische, temporäre oder statische nur-Lesen.
3
Antworten
Initialisiere ich normal-Typ-Vektoren wie diese: vector<float> data = {0.0f, 0.0f}; Aber wenn ich-Struktur anstelle der normal-Typ struct Vertex { float position[3]; float color[4]; }; vector<Vertex> data = {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}}; Bekomme ich Fehler
3
Antworten
Angenommen ich habe: //MyClass.h class MyClass { public: MyClass(); private: Something *something_; } //MyClass.cpp MyClass::MyClass() { something_ = new Something(); } Sollte ich initialisieren something_ auf NULL (oder 0) im Konstruktor mit Initialisierungsliste den Konstruktor MyClass? Oder
2
Antworten
Ich würde gerne sehen, wie dieses Beispiel der vorhandene code in der Lage wäre, um die Vorteile der C++0x-Initialisierer-Liste-Funktion. Example0: #include <vector> #include <string> struct Ask { std::string prompt; Ask(std::string a_prompt):prompt(a_prompt){} }; struct AskString : public Ask{
2
Antworten
Ich hab mich schon gewundert, was sind die Vorteile von variadischen Argumente über Initialisierer-Listen. Beide bieten die gleichen Fähigkeiten - pass unbestimmte Anzahl von Argumenten an eine Funktion. Was ich persönlich denke ist Initialisierer-Listen sind ein wenig
2
Antworten
Habe ich Objekte von verschiedenen Typen, die aus einem einzigen super-Typ. Ich Frage mich, ob es irgendwelche Nachteile bei der Verwendung std::initializer Liste in einem Bereich for-Schleife wie diese: for(auto object: std::initializer_list<Object *>{object1, object2, object3}) { }
1
Antworten
Jemand mir ein Beispiel an, verwenden Sie den folgenden Konstruktor int Qt? QVector::QVector(std::initializer_list<T> args); InformationsquelleAutor user1899020 | 2013-03-26
6
Antworten
Bin ich erlaubt, sich zu bewegen, Elemente aus einem std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); //kosher? } } Seit std::intializer_list<T> erfordert
2
Antworten
Ich versuche zu verwenden std::make_unique instantiieren einer Klasse, deren Konstruktor erhalten, der eine std::initializer_list. Hier ein minimal-Fall : #include <string> #include <vector> #include <initializer_list> #include <memory> struct Foo { Foo(std::initializer_list<std::string> strings) : strings(strings) {} std::vector<std::string> strings; };
3
Antworten
Ich habe Klasse Phänotyp mit den folgenden Konstruktor: Phenotype(uint8 init[NUM_ITEMS]); Ich kann ein Phänotyp wie diese: uint8 data = {0,0,0,0,0}; Phenotype p(data); Aber ich erhalte eine Fehlermeldung, wenn ich versuche, eines zu erstellen, wie diese: Phenotype p
3
Antworten
In C++11 haben wir, dass die neue syntax für die Initialisierung von Klassen, die gibt uns eine große Anzahl von Möglichkeiten, wie Sie Variablen initialisieren. { //Example 1 int b(1); int a{1}; int c = 1; int
1
Antworten
Ich habe ein begrenztes wissen über c++. Ich habe versucht zu kompilieren c++ Bibliothek und wenn ich das make-file für die folgenden header-Datei mcmc_dhs.h #include <algorithm> #include <map> //intrinsic shape and (reduced) shear just add? //#define WLNOISE
5
Antworten
Wenn ich übergeben Sie den folgenden code durch mein GCC 4.7 Momentaufnahme, es versucht zu kopieren, die unique_ptrs in den Vektor. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(),
2
Antworten
#include<iostream> using namespace std; struct TDate { int day, month, year; void Readfromkb() { cout << "\n ENTER DAY MONTH YEAR\n"; cin >> day >> month >> year; } void print() { cout << day << month
2
Antworten
Alle, Wenn ich die Instanzierung eines widgets array mit einer Initialisierer-Liste format eine Nackte Zeiger, der zeigt auf eine member-variable widget-Instanz kompiliert, aber nach dem Wechsel zu std::unique_ptr<> gcc gibt einen Kompilierungsfehler in Bezug auf eine gelöschte
4
Antworten
Gibt es keinen nutzen für die Umsetzung eine Klasse member-variable in einer Initialisierer-Liste, die nicht in einer Initialisierer-Liste? Beispiel: class Foo { public: Foo() {} }; class Bar { public: Bar() : _foo() {} private: Foo _foo;
2
Antworten
#include <vector> struct foo { int i; int j; int k; }; int main() { std::vector<foo> v(1); v[0] = {0, 0, 0}; return 0; } Beim kompilieren mit g++, bekomme ich die folgende Warnung: Warnung: erweiterte Initialisierer-Listen
5
Antworten
Aus irgendeinem Grund dachte ich C++0x erlaubt std::initializer_list als Funktions-argument für die Funktionen, die erwarten, dass Arten, die von konstruiert werden kann, wie zum Beispiel std::vector. Aber anscheinend, funktioniert es nicht. Ist das nur mein compiler, oder
3
Antworten
Habe ich eine situation, die zusammengefasst werden können in die folgenden: class Test { Test(); int MySet[10]; }; ist es möglich, zu initialisieren MySet in einer Initialisierer-Liste? Mag diese Art von Initialisierungsliste: Test::Test() : MySet({1, 2, 3,
3
Antworten
Std::shared_ptr Konstruktor ist nicht Verhalten, als ich erwartet hatte: #include <iostream> #include <vector> void func(std::vector<std::string> strings) { for (auto const& string : strings) { std::cout << string << '\n'; } } struct Func { Func(std::vector<std::string> strings) {
3
Antworten
Habe ich versucht zu kompilieren, den folgenden Schnipsel mit gcc4.7 vector<pair<int,char> > vp = {{1,'a'},{2,'b'}}; //For pair vector, it works like a charm. vector<tuple<int,double,char> > vt = {{1,0.1,'a'},{2,4.2,'b'}}; Jedoch für den Vektor von Tupeln, der compiler beschwert
8
Antworten
Warum erhalte ich die Fehlermeldung "Variable-sized-Objekt kann nicht initialisiert werden" durch den folgenden code? int boardAux[length][length] = {{0}}; InformationsquelleAutor der Frage helloWorld | 2010-06-21
6
Antworten
Kann ich initialisieren STL-Vektor mit 10 der gleiche integer in einer Initialisierer-Liste? Meine versuche haben bisher fehlgeschlagen mich. InformationsquelleAutor der Frage Xavier | 2012-04-19
3
Antworten
In C++11 haben wir, dass die neue syntax für die Initialisierung von Klassen, die gibt uns eine große Anzahl von Möglichkeiten, wie Sie Variablen initialisieren. { //Example 1 int b(1); int a{1}; int c = 1; int
7
Antworten
Ich bin immer bis zu Geschwindigkeit, mit C++0x und testen Dinge aus, die mit g++ 4.6 Ich habe gerade versucht den folgenden code, dachte, es würde funktionieren, aber es wird nicht kompiliert. Ich bekomme die Fehlermeldung: incompatible
2
Antworten
Warum funktioniert das: std::pair<int, int> p = {1,2}; std::vector<std::pair<int, int>> vp = { {1,2}, {3,4} }; Aber nicht? std::array<int, 2> a = {1,2}; //still ok std::vector<std::array<int, 2>> va = { {1,2}, {3,4} }; Verwendung von g++ 4.5.1
2
Antworten
Ich hab mich schon gewundert, was sind die Vorteile von variadischen Argumente über Initialisierer-Listen. Beide bieten die gleichen Fähigkeiten - pass unbestimmte Anzahl von Argumenten an eine Funktion. Was ich persönlich denke ist Initialisierer-Listen sind ein wenig
5
Antworten
Wenn ich übergeben Sie den folgenden code durch mein GCC 4.7 Momentaufnahme, es versucht zu kopieren, die unique_ptrs in den Vektor. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(),
6
Antworten
Jeder schafft std::vector aus std::initializer_listaber was ist mit den anderen zurecht? zB. wenn Sie eine std::initializer_list als parameter: void someThing(std::initializer_list<int> items) { ... } Es gibt Zeiten, wenn Sie haben Ihre Elemente in einem vector<T> anstelle von
3
Antworten
Ich habe Klasse Phänotyp mit den folgenden Konstruktor: Phenotype(uint8 init[NUM_ITEMS]); Ich kann ein Phänotyp wie diese: uint8 data = {0,0,0,0,0}; Phenotype p(data); Aber ich erhalte eine Fehlermeldung, wenn ich versuche, eines zu erstellen, wie diese: Phenotype p
6
Antworten
class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; Ich glaube, der Grund ist, dass arrays können initialisiert werden, nur mit = syntax:
1
Antworten
Wenn es überhaupt existiert, was wäre ein std::map erweitert Initialisierungsliste Aussehen? Ich habe versucht einige Kombinationen... naja, alles, was ich denken konnte, mit GCC-4.4, aber nichts gefunden, zusammengestellt. InformationsquelleAutor der Frage rubenvb | 2010-07-14