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

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



18
Почему программисты на C ++ должны минимизировать использование «нового»?
Я наткнулся на вопрос переполнения стека Утечка памяти с помощью std :: string при использовании std :: list <std :: string> , и один из комментариев говорит об этом: Прекратите использовать newтак много. Я не вижу причин, по которым ты использовал новое, где бы ты ни был. Вы можете создавать …


11
Код C ++ для проверки гипотезы Коллатца быстрее, чем рукописная сборка - почему?
Я написал эти два решения для Project Euler Q14 , в сборке и на C ++. Это один и тот же метод грубой силы для проверки гипотезы Коллатца . Решение для сборки было собрано с nasm -felf64 p14.asm && gcc p14.o -o p14 C ++ был скомпилирован с g++ p14.cpp …

30
Какой лучший способ обрезать std :: string?
В настоящее время я использую следующий код, чтобы урезать все std::stringsмои программы вправо : std::string s; s.erase(s.find_last_not_of(" \n\r\t")+1); Это работает нормально, но мне интересно, есть ли какие-то конечные случаи, когда он может потерпеть неудачу? Конечно, приветствуются ответы с элегантными альтернативами, а также левостороннее решение.
812 c++  trim  stdstring 


4
Что означает T && (двойной амперсанд) в C ++ 11?
Я изучил некоторые из новых функций C ++ 11, и одна из них я заметил, это двойной амперсанд при объявлении переменных, например T&& var. Для начала, как зовут этого зверя? Я бы хотел, чтобы Google позволил нам искать такие знаки препинания, как этот. Что именно это значит? На первый взгляд, …

9
Зачем использовать явно бессмысленные операторы do-while и if-else в макросах?
Во многих макросах C / C ++ я вижу код макроса, заключенный в нечто вроде бессмысленного do whileцикла. Вот примеры. #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else Я не вижу, что do whileделает. Почему бы просто не написать это …
788 c++  c  c-preprocessor  c++-faq 

25
Как преобразовать std :: string в нижний регистр?
Я хочу преобразовать std::stringв нижний регистр. Я знаю о функции tolower(), однако в прошлом у меня были проблемы с этой функцией, и в любом случае она вряд ли идеальна, так как использование с std::stringтребовало бы итерации по каждому символу. Есть ли альтернатива, которая работает 100% времени?

7
push_back против emplace_back
Я немного сбит с толку относительно разницы между push_backи emplace_back. void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); Поскольку существует push_backперегрузка, принимающая ссылку на rvalue, я не совсем понимаю, для чего это emplace_backделается?

2
Почему моя программа работает медленно, когда зацикливается ровно на 8192 элемента?
Вот выдержка из рассматриваемой программы. Матрица img[][]имеет размер SIZE × SIZE и инициализируется в: img[j][i] = 2 * j + i Затем вы создаете матрицу res[][], и каждое поле здесь считается средним из 9 полей вокруг нее в матрице img. Граница оставлена ​​на 0 для простоты. for(i=1;i<SIZE-1;i++) for(j=1;j<SIZE-1;j++) { res[j][i]=0; …

12
std :: wstring VS std :: string
Я не могу понять разницу между std::stringи std::wstring. Я знаю, wstringподдерживает широкие символы, такие как символы Юникода. У меня есть следующие вопросы: Когда я должен использовать std::wstringболее std::string? Может ли std::stringсодержать весь набор символов ASCII, включая специальные символы? Является ли std::wstringподдерживаются компиляторами всех популярных C ++? Что такое « широкий …
742 c++  string  unicode  c++-faq  wstring 



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