std- все статьи тега


Является ли std:: regex потокобезопасным?

Связано с является ли статический экземпляр boost::wregex потокобезопасным? но для стандартизированной версии. Можно ли вызвать regex_search из нескольких потоков с одним и тем же объектом regex? ...

Как передать предикат в качестве параметра функции

У меня есть класс CMyVector, который содержит вектор указателей на объекты CMyClass, и у меня есть несколько функций "найти", чтобы найти элементы в соответствии с различными критериями. Так, например, у меня есть: CMyClass* CMyVector::FindByX(int X); CMyClass* CMyVector::FindByString(const CString& str); CMyClass* CMyVector::FindBySomeOtherClass(CSomeOtherClass* ptr); // Other find functions... Сначала они были реализованы в виде петель, пересекающих вектор, ищущих элемент, который соот ...

C++ enum class std:: размер t неявное преобразование

Я определил кортеж и его индексы, создав класс enum: /** parameter { key ; value1 ; value1 ; } */ using Parameter = std::tuple<unsigned, unsigned, unsigned>; enum class ParameterKey : std::size_t { KEY = 0, VALUE1 = 1, VALUE2 = 2 }; Теперь я хотел бы получить значение из этого кортежа: const auto& key = std::get<ParameterKey::KEY>(*parameterPointer); Я думал, что неявное преобразование из int в std::size_t обеспечивается синтаксисом : std::size_t: enum class ...

Функция для вычисления среднего значения массива double [] с помощью accumulate

Это должна быть самая распространенная функция для того, что у каждого где-то есть фрагмент кода, но я на самом деле потратил не менее 1,5 часа на его поиск на SO, а также на других сайтах C++ и не нашел решения. Я хотел бы вычислить среднее значение double array[] с помощью функции. Я хотел бы передать массив функции в качестве ссылки . Есть миллионы примеров, когда среднее вычисляется в цикле main (), но то, что я ищу, - это функция, которую я могу поместить во внешний файл и использовать ...

передать std:: endl оператору std:: <

В этом ответе на переполнение стека он говорит, что std::cout << "Hello World!" << std::endl; то же самое, что std::operator<<(std::operator<<(std::cout, "Hello World!"), std::endl); Но когда я компилирую приведенный выше код строки, он не компилируется! Затем, попробовав что-то еще, я обнаружил, что причина, по которой он не компилируется, заключается в std::endl, Если я заменяю std::endl на "n", то он работает. Но почему вы не можете перейти от std::endl к std::op ...

Почему" использование пространства имен std " считается плохой практикой?

Мне говорили, что писать using namespace std в коде неправильно, и что я должен использовать std::cout и std::cin непосредственно вместо этого. Почему using namespace std считается плохой практикой? Это неэффективно или рискует объявить неоднозначные переменные (переменные, которые имеют то же имя, что и функция в пространстве имен std)? Влияет ли это на производительность? ...

Инициализация вектора std::со списком последовательных целых чисел без знака

Я хочу использовать специальный метод для инициализации std::vector<unsigned int>, который описан в книге C++, которую я использую в качестве ссылки (немецкая книга "Der C++ Programmer" Ульриха Бреймана, если это имеет значение). В этой книге есть раздел о типах последовательностей STL, относящийся, в частности, к list, vector и deque. В этом разделе он пишет, что существуют два специальных конструктора таких типов последовательностей, а именно, если Xотносится к такому типу, X(n, t) // ...

Векторное заполнение в потоках OpenMP

У меня есть алгоритм, для которого одна цель-заполнить векторы. Для повышения производительности итерации алгоритма распределяются по потокам OpenMP. Мне было интересно, какой способ обеспечит лучший/безопасный способ заполнения векторов. Обратите внимание, что порядок векторов должен быть последовательным (т. е. значение n век1 должно исходить из той же итерации, что и значение n век2.) Гипотеза 1: std::vector<BasicType> vec1; std::vector<BasicType> vec2; #pragma opm parallel fo ...

Является ли хорошей практикой использование std:: vector в качестве простого буфера?

У меня есть приложение, которое выполняет некоторую обработку некоторых изображений. Учитывая, что я знаю ширину / высоту / формат и т. д. (Я делаю), и думаю только об определении буфера для хранения пиксельных данных: Тогда, вместо того чтобы использовать new и delete [] на unsigned char* и держать отдельную заметку о размере буфера, я думаю об упрощении вещей с помощью std::vector. Поэтому я бы объявил свой класс примерно так: #include <vector> class MyClass { // ... etc. ... ...

В чем разница между "STL" и "стандартной библиотекой C++"?

кто-то принес в этой статье к моему вниманию, что утверждает (я перефразирую) термин STL неправильно используется для обозначения всей стандартной библиотеки C++ вместо частей, которые были взяты из SGI STL. (...) это относится к "STL", несмотря на то, что очень мало людей все еще используют STL (который был разработан в SGI). части стандартной библиотеки C++ были основаны на частях STL, и именно эти части многие люди (в том числе несколько авторов и заведомо ошибочных cplusplus.com) по ...

Убедительные примеры пользовательских распределителей C++?

какие действительно веские причины бросить std::allocator в пользу нестандартного решения? Вы сталкивались с какими-либо ситуациями, когда это было абсолютно необходимо для корректности, производительности, масштабируемости и т. д.? Есть действительно умные примеры? пользовательские распределители всегда были особенностью стандартной библиотеки, в которой у меня не было большой необходимости. Мне просто интересно, может ли кто-нибудь здесь на SO предоставить некоторые убедительные примеры, чтоб ...

Почему RAND ()%6 предвзято?

при чтении как использовать std:: rand, я нашел этот код на cppreference.com int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased что не так с выражением справа? Попробовал, и он отлично работает. ...

cc1plus: ошибка: нераспознанный параметр командной строки "- std=c++11 " с g++

Я пытаюсь скомпилировать с помощью g++ и -std=c++11 или c++0x флаги. однако, я получаю эту ошибку cc1plus: error: unrecognized command line option "-std=c++11" g++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ...

Что бы это было " Здравствуй, Мир!"пример для "std:: ref"?

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