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

277
Разница в 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. Может кто-нибудь...

277
Частные и защищенные члены: C ++

Может кто - нибудь просветить меня, чтобы разница между privateи protectedчленами в классах? Я понимаю , от условностей наилучшей практики , что переменные и функции , которые не называются вне класса должны быть сделаны private- но глядя на мой MFC проект, MFC , кажется, пользу protected. Какая...

276
Как работают 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;...

274
Какой самый эффективный способ удалить дубликаты и отсортировать вектор?

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

273
Разница между общими объектами (.so), статическими библиотеками (.a) и DLL (.so)?

Я принимал участие в некоторых дебатах по поводу библиотек в Linux и хотел бы подтвердить некоторые вещи. Насколько я понимаю (пожалуйста, исправьте меня, если я ошибаюсь, и я отредактирую свой пост позже), что есть два способа использования библиотек при создании приложения: Статические библиотеки...

273
Когда я должен использовать новое ключевое слово в C ++?

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

271
Как «int main () {(([] () {}) ());}» является допустимым C ++?

Недавно я наткнулся на следующий эзотерический фрагмент кода. int main(){(([](){})());} Переформатируйте его следующим образом, чтобы сделать его более читабельным: int main(){ (([](){})()); // Um... what?!?! } Но я не могу понять, как (([](){})())действует код. Это не похоже на синтаксис указателя...

270
Должны ли мы передавать shared_ptr по ссылке или по значению?

Когда функция берет shared_ptr(из boost или C ++ 11 STL), вы передаете ее: по постоянной ссылке: void foo(const shared_ptr<T>& p) или по значению void foo(shared_ptr<T> p):? Я бы предпочел первый метод, потому что подозреваю, что он будет быстрее. Но стоит ли это того или есть...

270
Почему в C ++ нет сборщика мусора?

Я не задаю этот вопрос из-за достоинств сборки мусора в первую очередь. Моя главная причина, по которой я спрашиваю об этом, состоит в том, что я знаю, что Бьярн Страуструп сказал, что C ++ будет иметь сборщик мусора в определенный момент времени. С учетом сказанного, почему он не был добавлен? Уже...

270
Как мне построить графический интерфейс пользователя в C ++? [закрыто]

Трудно сказать, что здесь спрашивают. Этот вопрос является двусмысленным, расплывчатым, неполным, чрезмерно широким или риторическим, и на него нельзя дать разумный ответ в его нынешней форме. Чтобы получить разъяснения по этому вопросу, чтобы его можно было снова открыть, посетите справочный...

269
Как получить каталог, из которого запускается программа?

Существует ли платформо-независимый и файлово-независимый метод для получения полного пути к каталогу, из которого программа работает с использованием C / C ++? Не путать с текущим рабочим каталогом. (Пожалуйста, не предлагайте библиотеки, если они не стандартные, такие как clib или STL.) (Если нет...

267
Как завершить код C ++

Я хотел бы, чтобы мой код C ++ прекратил работать, если соблюдено определенное условие, но я не уверен, как это сделать. Так что в любой момент, если ifутверждение истинно, завершите код следующим образом: if (x==1) { kill code; }...

267
Почему я не должен включать #include <bits / stdc ++. H>?

Я отправил вопрос со своим кодом, единственной #includeдирективой которого было следующее: #include <bits/stdc++.h> Мой учитель сказал мне сделать это, но в разделе комментариев мне сообщили, что я не должен....

267
Почему f (i = -1, i = -1) неопределенное поведение?

Я читал о порядке нарушений оценки , и они приводят пример, который озадачивает меня. 1) Если побочный эффект на скалярный объект не секвенирован относительно другого побочного эффекта на тот же скалярный объект, поведение не определено. // snip f(i = -1, i = -1); // undefined behavior В этом...

266
Как избежать цепочек «если»?

Предполагая, что у меня есть этот псевдокод: bool conditionA = executeStepA(); if (conditionA){ bool conditionB = executeStepB(); if (conditionB){ bool conditionC = executeStepC(); if (conditionC){ ... } } } executeThisFunctionInAnyCase(); Функции executeStepXдолжны быть выполнены тогда и только...

266
Объявление переменных внутри циклов, хорошая практика или плохая практика?

Вопрос № 1: является ли объявление переменной внутри цикла хорошей или плохой практикой? Я читал другие темы о том, есть ли проблемы с производительностью (большинство сказали нет), и что вы всегда должны объявлять переменные как можно ближе к месту их использования. Что мне интересно, так это то,...