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

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

7
Как отсортировать вектор пар на основе второго элемента пары?
Если у меня есть вектор пар: std::vector<std::pair<int, int> > vec; Есть ли простой способ отсортировать список в порядке возрастания на основе второго элемента пары? Я знаю, что могу написать небольшой функциональный объект, который будет выполнять эту работу, но есть ли способ использовать существующие части STL и std::lessвыполнять работу напрямую? EDIT: …
133 c++  stl  stdvector 

12
Печать правильного количества десятичных знаков с помощью cout
У меня есть список floatзначений, и я хочу напечатать их coutс двумя десятичными знаками. Например: 10.900 should be printed as 10.90 1.000 should be printed as 1.00 122.345 should be printed as 122.34 Как я могу это сделать? ( setprecisionпохоже, не помогает в этом.)
133 c++ 


18
Становится ли современный C ++ более распространенным? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
132 c++ 


6
C ++: почему bool имеет длину 8 бит?
В C ++ мне интересно, почему тип bool имеет длину 8 бит (в моей системе), где только одного бита достаточно для хранения логического значения? Раньше я полагал, что это было из соображений производительности, но затем на 32-битной или 64-битной машине, где регистры имеют ширину 32 или 64 бит, в чем …
132 c++  boolean  size 

25
Зачем кому-то использовать C вместо C ++? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
132 c++  c 


1
В чем разница между -std = c ++ 11 и -std = gnu ++ 11?
Каковы различия между -std=c++11и в -std=gnu++11качестве параметра компиляции для GCC и звона? Тот же вопрос с c99и gnu99? Я знаю о стандартах C ++ и C, меня интересуют различия в параметрах. Я где-то читал, что это связано с некоторыми расширениями, но мне непонятно, какие из них и как выбрать между …
132 c++  gcc  c++11  clang 


10
Почему компиляторы C и C ++ допускают длину массивов в сигнатурах функций, когда они никогда не применяются?
Вот что я обнаружил в период обучения: #include<iostream> using namespace std; int dis(char a[1]) { int length = strlen(a); char c = a[2]; return length; } int main() { char b[4] = "abc"; int c = dis(b); cout << c; return 0; } Таким образом , в переменной int dis(char …
131 c++  c  arrays 

11
Является ли main () действительно началом программы на C ++?
Раздел $ 3.6.1 / 1 стандарта C ++ гласит: Программа должна содержать глобальную функцию с именем main , которая является назначенным запуском программы. Теперь рассмотрим этот код, int square(int i) { return i*i; } int user_main() { for ( int i = 0 ; i < 10 ; ++i ) …

4
Как переслать объявление класса шаблона в пространстве имен std?
#ifndef __TEST__ #define __TEST__ namespace std { template<typename T> class list; } template<typename T> void Pop(std::list<T> * l) { while(!l->empty()) l->pop(); } #endif и использовал эту функцию в моем main. Я получаю ошибки. Конечно, я знаю, что есть еще параметры шаблона для std::list(мне кажется, распределителя). Но это не относится к …
131 c++  templates  g++ 

2
В режиме выпуска поведение кода не такое, как ожидалось
Следующий код генерирует разные результаты в режиме отладки и в режиме выпуска (с использованием Visual Studio 2008): int _tmain(int argc, _TCHAR* argv[]) { for( int i = 0; i < 17; i++ ) { int result = i * 16; if( result > 255 ) { result = 255; } …

9
Почему использование «нового» вызывает утечку памяти?
Сначала я выучил C #, а теперь начинаю с C ++. Насколько я понимаю, оператор newв C ++ не похож на оператор в C #. Можете ли вы объяснить причину утечки памяти в этом примере кода? class A { ... }; struct B { ... }; A *object1 = new …

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