Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Ошибка C2864/C2758 Собсна вот в чём проблема... Код писался на VS15 Community, проект был пересоздан на VS10 Ultimate Но вот беда, не хочет объявляться не статический int.. Кто сталкивался? Помогите. Ошибки на скриншотах, с кодом. Код "Linear.h": #pragma once #include "Progression.h" #include <time.h> https://www.cyberforum.ru/ cpp-beginners/ thread1754622.html C++ Определить, сколько символов цифр содержит файл
Извиняюсь за вопрос, но я просто не могу понять: 1) Как объяснить компилятору, что это именно число, а не буква? (предположительно через аску, но опять же как). 2) Как можно прочитать весь файл полностью, если там, допустим, 10 строк, а не 1? (предположительно через eof()).
C++ Ошибка компиляции проекта под linux Здраствуйте. Пытаюсь скомпилировать проект в Cygwin, получается такой лог: $ make MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp. gcc -c -m32 -O3 -fPIC -w -DLINUX -Wall -I../SDK/amx/ ../SDK/amx/*.c g++ -c -m32 -O3 -fPIC -w -DLINUX -Wall -I../SDK/amx/ ../SDK/*.cpp In file included from ../SDK/amx/amx.h:28:0, from ../SDK/plugin.h:9, ... https://www.cyberforum.ru/ cpp-beginners/ thread1754618.html C++ Умножытели: Математические операции с умножытелями Ребята помогите написать програму до понедельника на тему: "Умножители: Математические операции с умножителями". Чесно говоря, у меня даже нет понятие ,как это делать. А у меня ещё куча работы по остальным предметам. И это все нужно срочно до понедельника. Заранее спасибо! https://www.cyberforum.ru/ cpp-beginners/ thread1754610.html
Цикл с паузой C++
Вопрос простой до невозможности, но сколько бы я не искал его на английских форумах, на русских - нигде не нашел ответа. Как сделать цикл с паузой? sleep не работает. Что я хотел сделать - это цикл с паузой, который запускает функцию каждые 10 секунд. Почему без sleep? Потому что он ломает windows forms, из-за чего тот зависает и не реагирует на нажатия кнопок\изменения строк и т.д. Так...
C++ Ошибка error: call of overloaded https://www.cyberforum.ru/ cpp-beginners/ thread1754567.html
Помогите разобраться с ошибкой, не хочет компилировать! ошибки не подчеркивает...))
C++ Cmake под виндой создает кривой Makefile во первых он добавляет это !IF "$(OS)" == "Windows_NT" NULL= !ELSE NULL=nul !ENDIF SHELL = cmd.exe mingw падает с ошибкой CMakeFiles\Makefile2:41: *** missing separator. Stop. но это можно вручную поправить https://www.cyberforum.ru/ cpp-beginners/ thread1754546.html C++ При вычислении степени получается результат 1.#INF
Добрый день! При вычислении степени получается результат 1.#INF Нужно диагностировать эту ситуацию, т.е. выводить в программе сообщение об ошибке. double a=pow(2.0, 65000); if (???) { printf("ERROR") } else
C++ Реализация консольного калькулятора с обработкой строк https://www.cyberforum.ru/ cpp-beginners/ thread1754519.html
Реализация консольного калькулятора с обработкой строк. Помогите чем кто может, заранее спасибо:)
C++ Побитовые функции Написать функцию которая побитово сравнивает два числа и обчисляет общее количество положений на которых расположены одинаковые значения битов https://www.cyberforum.ru/ cpp-beginners/ thread1754500.html
C++ Объявление класса без дефолтного конструктора
Имею некий класс, у которого нет конструктора по умолчанию. Class abc { abc(int){} } Как мне объявить переменную этого класса внутри другого? Class cdf {
C++ Запись/считывание структуры в текстовый файл Здравствуйте! Нужна помощь, я создаю структуру, заполняю её и вывожу на экран в форме таблицы, с этим все окей, но я хочу сделать так: к примеру при запуске программы мне дается выбор: нажать 1 (для заполнения структуры) или 2 (для вывода и просмотра таблицы с уже заполнеными ранее данными). Так вот нужна помощь именно со "2", никак не могу понять как можно записать все в файл, а потом эти все... https://www.cyberforum.ru/ cpp-beginners/ thread1754450.html
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
0

Почему std::string_view МЕДЛЕННЕЕ, чем std::string? - C++ - Ответ 9233044

04.06.2016, 20:57. Показов 8365. Ответов 28
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!

Нужно найти количество уникальных строк в больших текстовых файлах (размером до нескольких гигабайт).
Почему в нижеследующем коде результат выполнения со string_view, который не копирует элементы, значительно медленнее, чем в случае сo string?!

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <fstream>
#include <iomanip>
#include <unordered_set>
#include <chrono>
#include <random>
#include <iterator>
#include <experimental/string_view>
 
#include <QFile>
 
namespace sc = std::chrono;
 
int main()
{
    QFile file("/home/z/data/random_values.txt");
    const int fileSize = file.size();
 
    std::unordered_set<std::/*experimental::*/string/*_view*/> hashSet;
    hashSet.reserve(1024*1024*100);
 
    if(file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        std::cerr << "File size: " << fileSize << " bytes\n";
 
        // Map the file to virtual address space of a process
        uchar* mapPtr = file.map(0, file.size());
        uchar *ptr = mapPtr, *prevPtr = mapPtr;
 
        file.close(); 
 
        auto start = sc::high_resolution_clock::now();
        
        // Parse lines, delimited by '\n'
        while ( ptr = (uchar*)memchr(ptr, '\n', fileSize - (ptr-mapPtr)))
        {
            hashSet.emplace((const char*)prevPtr, ptr-prevPtr);
 
            prevPtr = ++ptr;
        }
 
 
        auto end = sc::high_resolution_clock::now();
 
        // Print results
        std::cout << "+-----------------------------------------+\n"; // 43 chars
        std::cout << std::setw(25) << std::left << "|    Unique elements:"
                        << "< " << hashSet.size() << " >\n"
 
                  << std::setw(25) << std::left << "|    Elapsed time:"    
                  << "< " << sc::duration_cast<sc::milliseconds>(end-start).count() << "ms >" << std::endl;
        std::cout << "+-----------------------------------------+\n";
 
    }
    else {
        std::cerr << "Error opening file\n";
    }
 
}

Результат с копированием через string:

Почему std::string_view МЕДЛЕННЕЕ, чем std::string?



Результат с "легковесным" string_view:

Почему std::string_view МЕДЛЕННЕЕ, чем std::string?


Вернуться к обсуждению:
Почему std::string_view МЕДЛЕННЕЕ, чем std::string? C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2016, 20:57
Готовые ответы и решения:

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же...

Запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
private: std::string firstName; }; std::string ClientData::getFirstName() const{ ...

Реализация класса MyString. Стандартная библиотека, std::string, std::vector
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и...

28
04.06.2016, 20:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2016, 20:57
Помогаю со студенческими работами здесь

Передача функции указатель на элемент std::vector<std::string>
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в...

Операция std::cout для Объекта типа std::string
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий...

No match for 'operator<' (operand types are 'std::__cxx11::string {aka std::__c
Имеем следующий код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include...

Как правильно перевести std::wstring в std::string ?
Собственно как? :)

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru