Вопросы с тегом «c++»

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

2
C ++ unordered_map с использованием пользовательского типа класса в качестве ключа
Я пытаюсь использовать пользовательский класс в качестве ключа для unordered_map, как показано ниже: #include <iostream> #include <algorithm> #include <unordered_map> using namespace std; class node; class Solution; class Node { public: int a; int b; int c; Node(){} Node(vector<int> v) { sort(v.begin(), v.end()); a = v[0]; b = v[1]; c = …



5
std :: vector против std :: array в C ++
В чем разница между a std::vectorи a std::arrayв C ++? Когда одно должно быть предпочтительнее другого? Каковы плюсы и минусы каждого? Все, что делает мой учебник, это перечисляет, как они одинаковы.
283 c++  arrays  vector 


18
Как распечатать содержимое вектора?
Я хочу распечатать содержимое вектора в C ++, вот что у меня есть: #include <iostream> #include <fstream> #include <string> #include <cmath> #include <vector> #include <sstream> #include <cstdio> using namespace std; int main() { ifstream file("maze.txt"); if (file) { vector<char> vec(istreambuf_iterator<char>(file), (istreambuf_iterator<char>())); vector<char> path; int x = 17; char entrance = …
282 c++  vector  output  stdvector  cout 

18
Каково обоснование для строк с нулевым символом в конце?
Столько, сколько я люблю C и C ++, я не могу не почесать голову при выборе строк с нулевым окончанием: Длина строки с префиксом (т.е. Паскаль) существовала до C Строки с префиксом длины ускоряют несколько алгоритмов, обеспечивая постоянный поиск по времени. Строки с префиксом длины затрудняют ошибки переполнения буфера. Даже …
281 c++  c  string  null-terminated 


16
Инициализация структуры C ++
Можно ли инициализировать структуры в C ++, как указано ниже struct address { int street_no; char *street_name; char *city; char *prov; char *postal_code; }; address temp_address = { .city = "Hamilton", .prov = "Ontario" }; Ссылки здесь и здесь упоминают, что этот стиль можно использовать только в C. Если это …
279 c++ 

9
Почему люди говорят, что при использовании генератора случайных чисел наблюдается смещение по модулю?
Я видел, как этот вопрос задавали много, но никогда не видел истинного конкретного ответа на него. Итак, я собираюсь опубликовать один здесь, который, надеюсь, поможет людям понять, почему именно происходит «смещение по модулю» при использовании генератора случайных чисел, как rand()в C ++.

17
Частные и защищенные члены: C ++
Может кто - нибудь просветить меня, чтобы разница между privateи protectedчленами в классах? Я понимаю , от условностей наилучшей практики , что переменные и функции , которые не называются вне класса должны быть сделаны private- но глядя на мой MFC проект, MFC , кажется, пользу protected. Какая разница и какую …
277 c++  class  mfc 

8
Разница в make_shared и обычном shared_ptr в C ++
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Здесь есть много постов о Google и StackOverflow, но я не могу понять, почему make_sharedэто более эффективно, чем прямое использование shared_ptr. Может кто-нибудь объяснить мне пошаговую последовательность созданных объектов и операций, выполняемых обоими, чтобы я смог понять, насколько make_sharedэто эффективно. Я привел один …
277 c++  c++11  shared-ptr 

13
Как работают malloc () и free ()?
Я хочу знать, как mallocи freeработать. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } Я был бы очень признателен, если …

23
Какой самый эффективный способ удалить дубликаты и отсортировать вектор?
Мне нужно взять вектор C ++ с потенциально большим количеством элементов, стереть дубликаты и отсортировать их. В настоящее время у меня есть код ниже, но он не работает. vec.erase( std::unique(vec.begin(), vec.end()), vec.end()); std::sort(vec.begin(), vec.end()); Как я могу правильно сделать это? Кроме того, быстрее ли сначала удалить дубликаты (аналогично приведенному выше) …
274 c++  sorting  vector  stl  duplicates 

11
Когда я должен использовать новое ключевое слово в C ++?
Я использую C ++ в течение короткого времени, и меня интересует новое ключевое слово. Просто я должен использовать это или нет? 1) С новым ключевым словом ... MyClass* myClass = new MyClass(); myClass->MyField = "Hello world!"; 2) Без нового ключевого слова ... MyClass myClass; myClass.MyField = "Hello world!"; С точки …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.