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

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

10
Приращение в C ++ - когда использовать x ++ или ++ x?
В настоящее время я изучаю C ++ и некоторое время назад узнал об увеличении. Я знаю, что вы можете использовать «++ x» для увеличения до и «x ++», чтобы сделать это после. Тем не менее, я действительно не знаю, когда использовать любой из двух ... Я никогда не использовал "++ …

2
Как будет выглядеть расширенный список инициализаторов std :: map?
Если он вообще существует, как бы выглядел std::mapрасширенный список инициализаторов? Я пробовал несколько комбинаций ... ну, всего, что мог придумать с GCC 4.4, но не нашел ничего компилированного.

10
Как программно вызвать дамп ядра в C / C ++
Я хотел бы принудительно создать дамп ядра в определенном месте в моем приложении C ++. Я знаю, что могу сделать это, выполнив что-нибудь вроде: int * crash = NULL; *crash = 1; Но хотелось бы знать, есть ли способ чище? Кстати, я использую Linux.
93 c++  c  linux  coredump  abort 


7
Проверка содержимого стандартного контейнера (std :: map) с помощью gdb
Предположим, что есть что-то вроде этого: #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } Я хотел бы иметь возможность проверить содержимое карты, запускающей программу из gdb. Если я попробую использовать оператор индекса, я получу: (gdb) p m[1] Attempt to take address of value …
93 c++  stl  map  gdb 

8
std :: map insert или std :: map find?
Предполагая карту, на которой вы хотите сохранить существующие записи. В 20% случаев вводимая вами запись - это новые данные. Есть ли преимущество в выполнении std :: map :: find, а затем std :: map :: insert с использованием этого возвращенного итератора? Или быстрее попытаться вставить, а затем действовать в зависимости …
93 c++  optimization  stl  stdmap 

21
Преобразуйте vector <int> в строку
У меня есть vector&lt;int&gt;контейнер с целыми числами (например, {1,2,3,4}), и я хотел бы преобразовать его в строку вида "1,2,3,4" Каков самый чистый способ сделать это на C ++? В Python я бы сделал это так: &gt;&gt;&gt; array = [1,2,3,4] &gt;&gt;&gt; ",".join(map(str,array)) '1,2,3,4'
93 c++  vector  tostring 

8
Использование CMake для создания файлов проекта Visual Studio C ++
Я работаю над проектом C ++ с открытым исходным кодом для кода, который компилируется в Linux и Windows. Я использую CMake для сборки кода в Linux. Для простоты настройки разработки и по политическим причинам я должен придерживаться файлов / редактора проекта Visual Studio в Windows (например, я не могу переключиться …

8
Какой контейнер STL мне следует использовать для FIFO?
Какой контейнер STL лучше всего подходит для моих нужд? По сути, у меня есть контейнер шириной 10 элементов, в котором я постоянно добавляю push_backновые элементы, pop_frontдобавляя самый старый (примерно миллион раз). В настоящее время я использую a std::dequeдля этой задачи, но мне было интересно, будет ли a std::listболее эффективным, поскольку …
93 c++  stl  fifo 

18
Оператор [] [] перегрузка
Можно ли []дважды перегрузить оператора? Чтобы разрешить, что-то вроде этого: function[3][3](как в двумерном массиве). Если возможно, я хотел бы увидеть пример кода.

3
Как обеспечить соблюдение семантики перемещения при росте вектора?
У меня есть std::vectorобъекты определенного класса A. Класс нетривиален и имеет конструкторы копирования и перемещение конструктор определены. std::vector&lt;A&gt; myvec; Если я заполню вектор Aобъектами (например, используя myvec.push_back(a)), вектор будет увеличиваться в размере, используя конструктор копирования A( const A&amp;)для создания новых копий элементов в векторе. Могу ли я каким-то образом добиться, …

5
как найти пересечение двух std :: set в C ++?
Я пытался найти пересечение между двумя std :: set в C ++, но все время получаю сообщение об ошибке. Я создал небольшой образец теста для этого #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;set&gt; using namespace std; int main() { set&lt;int&gt; s1; set&lt;int&gt; s2; s1.insert(1); s1.insert(2); s1.insert(3); s1.insert(4); s2.insert(1); s2.insert(6); …

2
Функция для структуры C ++
Обычно мы можем определить переменную для структуры C ++, как в struct foo { int bar; }; Можем ли мы также определить функции для структуры? Как бы мы использовали эти функции?
93 c++  function  struct 

4
Передача shared_ptr <Derived> как shared_ptr <Base>
Каков наилучший способ передать a shared_ptrпроизводного типа функции, которая принимает shared_ptra базового типа? Я обычно передаю shared_ptrs по ссылке, чтобы избежать ненужной копии: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); но это не сработает, если я попытаюсь сделать что-то вроде int foo(const shared_ptr&lt;Base&gt;&amp; ptr); ... shared_ptr&lt;Derived&gt; bar = make_shared&lt;Derived&gt;(); foo(bar); Я мог бы …


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