Хранит ли std::setобъекты в непрерывной памяти как std::vector? Я не смог найти это в Интернете, cppreference не упоминает подробности о распределении памяти. Но я не понимаю, почему он не может использовать непрерывную память, поэтому мой...
Хранит ли std::setобъекты в непрерывной памяти как std::vector? Я не смог найти это в Интернете, cppreference не упоминает подробности о распределении памяти. Но я не понимаю, почему он не может использовать непрерывную память, поэтому мой...
Я играл с autoв std::pair. В приведенном ниже коде функция fдолжна возвращать std::pairтипы, которые зависят от параметра шаблона. Рабочий пример: Пример 1 template <unsigned S> auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if constexpr (S == 2) return...
У меня есть следующий шаблонный код #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void...
В настоящее время я работаю над байесовским методом, который требует нескольких этапов оптимизации полиномиальной логит-модели на одну итерацию. Я использую optim () для выполнения этих оптимизаций, и целевая функция, написанная на R. Профилирование показало, что optim () является основным узким...
Есть ли способ передать ссылку в качестве аргумента аргументу типа имя шаблона? Я имею в виду, что вместо передачи int, например, чтобы передать ссылку на int. template <typename T> struct Foo { Foo(T arg) : ptr(arg) {} T ptr; }; int main() { int* a = new int(6); Foo<decltype(a)>...
Требуется ли прекращение работы программы? Другими словами, это программа, которая всегда работает технически с неопределенным поведением? Обратите внимание, что это не о пустых циклах. Разговор о программах, которые делают "вещи" (то есть наблюдаемое поведение) навсегда. Например, что-то вроде...
Как я знаю, std::allocator<T>::constructпринимает только два параметра в более старой версии C ++; первый - указатель на необработанную неструктурированную память, в которой мы хотим создать объект типа, Tа второй - значение типа элемента для инициализации этого объекта. Итак, конструктор...
У меня есть целое число N. Я должен найти наименьшее целое число больше N, которое не содержит цифр, кроме 0 или 1. Например: если N = 12тогда ответ - 100. Я кодировал подход грубой силы в C ++. int main() { long long n; cin >> n; for (long long i = n + 1; ; i++) { long long temp = i; bool ok...
std::basic_iosимеет открытый конструктор : explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb); IMO, единственная причина, по которой у класса есть открытый конструктор, - это использование автономного экземпляра этого класса в программе. Если класс существует только для того, чтобы...
Пожалуйста, найдите фрагмент кода ниже: class tFunc{ int x; public: tFunc(){ cout<<"Constructed : "<<this<<endl; x = 1; } ~tFunc(){ cout<<"Destroyed : "<<this<<endl; } void operator()(){ x += 10; cout<<"Thread running at : "<<x<<endl; } int...
У меня есть код как template <size_t N> class A { template <size_t N> someFunctions() {}; }; Теперь я хочу создать экземпляры класса и вызвать его функции в цикле for для множества значений: // in main() int main() { for (int i = 1; i <= 100; i++) { const int N = i; // dont know how...
Я компилирую эту программу с помощью g ++ и clang ++. Есть разница: g ++ печатает 1, а clang ++ печатает 2. Кажется, что g ++: внешняя переменная определена в самой короткой области видимости. clang ++: внешняя переменная определена в самой короткой глобальной области видимости. Есть ли в C ++...
Возможно ли с помощью препроцессора C / C ++ подсчитать строки в исходном файле либо в макросе, либо в некотором виде, доступном во время компиляции? Например, я могу заменить MAGIC1, MAGIC2и MAGIC3в следующем, и получить значение 4 как-то при использовании MAGIC3? MAGIC1 // can be placed wherever...
В C ++ нормально ли красть ресурсы с карты, которая мне больше не нужна? Точнее, предположим, что у меня есть ключи std::mapс std::stringключами, и я хочу создать из него вектор путем кражи ресурсов mapс использованием ключей s std::move. Обратите внимание, что такой доступ для записи ключей...
У меня есть шаблон, который выглядит так template <typename T> class Foo { public: Foo(const T& t) : _t(t) {} private: const T _t; }; Есть ли хитрый способ метапрограммирования шаблонов, чтобы избежать использования константной ссылки в тех случаях, когда тип аргумента тривиален, как bool...
Мне любопытно, можно ли гарантировать, что во время компиляции метод вызывается ровно в одном месте. Обратите внимание, что все в порядке, если функция вызывается более одного раза (например, в цикле), но ее не следует вызывать в двух отдельных циклах. Это может быть разбито на две части, меня...
У меня есть c++ vectorс std::pair<unsigned long, unsigned long>объектами. Я пытаюсь генерировать перестановки объектов вектора с помощью std::next_permutation(). Однако, я хочу, чтобы перестановки имели заданный размер, вы знаете, аналогично permutationsфункции в python, где указан размер...
В своем недавнем выступлении « Обработка типов в современном C ++» Тимур Думлер сказал, что std::bit_castего нельзя использовать для floatпреобразования битов в unsigned char[4]массив, потому что массивы в стиле C не могут быть возвращены из функции. Мы должны либо использовать, std::memcpyлибо...
В последнее время я написал шаблонную функцию для решения некоторых повторений кода. Это выглядит так: template<class T, class R, class... Args> R call_or_throw(const std::weak_ptr<T>& ptr, const std::string& error, R (T::*fun)(Args...), Args... args) { if (auto sp = ptr.lock())...
Правильно ли сформирована следующая программа? #include <vector> struct A { explicit A(int) {} }; int main() { std::vector<int> vi = {1, 2, 3, 4, 5}; std::vector<A> va(vi.begin(), vi.end()); } Согласно C ++ 17 [sequence.reqmts], требование для X u(i, j); где Xконтейнер...