Obecnie mam, std::map<std::string,int>który przechowuje wartość całkowitą do unikalnego identyfikatora ciągu i wyszukuję ciąg. Robi głównie to, co chcę, z wyjątkiem tego, że nie śledzi zamówienia reklamowego. Więc kiedy iteruję mapę, aby wydrukować wartości, są one sortowane według ciągu; ale chcę, aby były sortowane zgodnie z kolejnością (pierwszego) wstawienia. Zastanawiałem się …
Czytając, jak używać std :: rand, znalazłem ten kod na cppreference.com int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased Co jest nie tak z wyrażeniem po prawej stronie? Wypróbowałem i działa idealnie.
ifstream f; f.open(fileName); if ( f.fail() ) { // I need error message here, like "File not found" etc. - // the reason of the failure } Jak uzyskać komunikat o błędzie w postaci ciągu?
Warto tysiąc słów: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return 0; …
C ++ 11 dodał kilka nowych funkcji konwersji ciągów: http://en.cppreference.com/w/cpp/string/basic_string/stoul Zawiera stoi (ciąg do wartości typu int), stol (ciąg do długości długiej), stoll (ciąg do długości długiej bez znaku), stoul (ciąg do długości bez znaku), stoull (ciąg do długości bez znaku). W przypadku jego braku godna uwagi jest funkcja stou …
#include <iostream> #include <cmath> /* Intentionally incorrect abs() which seems to override std::abs() */ int abs(int a) { return a > 0? -a : a; } int main() { int a = abs(-5); int b = std::abs(-5); std::cout<< a << std::endl << b << std::endl; return 0; } Spodziewałem się, …
Dlaczego nie std::initializer_listma wbudowanego języka podstawowego? Wydaje mi się, że jest to dość ważna cecha C ++ 11, a mimo to nie ma własnego zarezerwowanego słowa kluczowego (lub czegoś podobnego). Zamiast tego initializer_listjest to po prostu klasa szablonu z biblioteki standardowej, która ma specjalne, niejawne mapowanie z nowej składni listy …
Często widzę kod źródłowy używający typów takich jak uint32, uint64 i zastanawiam się, czy powinny być zdefiniowane przez programistę w kodzie aplikacji, czy też są zdefiniowane w standardowym nagłówku lib. Jaki jest najlepszy sposób na umieszczenie tych typów w kodzie źródłowym aplikacji?
Próbuję zrozumieć, jak std::unique_ptrdziała i do tego znalazłem ten dokument. Autor zaczyna od następującego przykładu: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); // overloaded * …
Czy istnieje sposób na zastąpienie wszystkich wystąpień podciągu innym ciągiem w std::string? Na przykład: void SomeFunction(std::string& str) { str = str.replace("hello", "world"); //< I'm looking for something nice like this }
Próbowałem znaleźć punkt przecięcia między dwoma std :: ustawionymi w C ++, ale ciągle otrzymuję błąd. Stworzyłem do tego mały przykładowy test #include <iostream> #include <vector> #include <algorithm> #include <set> using namespace std; int main() { set<int> s1; set<int> s2; s1.insert(1); s1.insert(2); s1.insert(3); s1.insert(4); s2.insert(1); s2.insert(6); s2.insert(3); s2.insert(0); set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end()); return …
Próbuję skompilować przy użyciu g++i flag -std=c++11lub c++0x. Jednak pojawia się ten błąd cc1plus: error: unrecognized command line option "-std=c++11" g ++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO …
Niedawno modyfikowałem kod i znalazłem istniejący błąd w jednym wierszu funkcji: std:;string x = y; Ten kod nadal się kompiluje i działa zgodnie z oczekiwaniami. Definicja ciągu działa, ponieważ ten plik jest using namespace std;, więc od początku std::był niepotrzebny. Pytanie brzmi, dlaczego std:;kompilacja i co, jeśli w ogóle, robi?
Próbuję zadeklarować priority_queue of nodes, używając bool Compare(Node a, Node b)jako funkcji komparatora (która znajduje się poza klasą węzła). Obecnie posiadam: priority_queue<Node, vector<Node>, Compare> openSet; Z jakiegoś powodu rozumiem Error: "Compare" is not a type name Zmiana deklaracji na priority_queue <Node, vector<Node>, bool Compare> daje mi Error: expected a '>' …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.