Форум программистов, компьютерный форум CyberForum.ru

Как можно ускорить разбор значений в строке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переменная в массиве http://www.cyberforum.ru/cpp-beginners/thread917805.html
почему я не могу сделать так.... #include <iostream> using namespace std; int main() { int q = 0; int s = {}; }
C++ error LNK2019 при компиляции empty project День добрый! Создаю новый пустой проект в VS 2010 со следующей структурой: Header Files: header.h #include <windows.h> #include <gl\gl.h> #include <gl\glu.h> Source Files: http://www.cyberforum.ru/cpp-beginners/thread917787.html
C++ структуры\строки
результат(result) всегда единичка(а ноль обязательно должен встретится исходя из файла с данными), думаю дело в strcmp но не знаю в чем беда. Подскажите, пожалуйста. #include <iostream> #include<fstream> #include <conio.h> #include <string.h> using namespace std;
C++ Русские символы в Visual Studio
Здравствуйте. Проект на си пишется в Visual Studio 08 Общий смысл проблемы таков : на вход поступают строки данных в кодировке UTF-8 их нужно разбирать и т.д.
C++ Заполнения двумерного массива рандомно или с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread917776.html
Здраствуйте. Я только начинаю програмировать и еще не знаю всех правил хорошого тона програмирования. Я написал код. Может кто то подкажет как грамотней надо было написать?? Спасибо. P.S. Когда писал то искал на многих форумах... и там было подключение библиотеки <time.h>. Доскажыте для чего она. #include <iostream> #include <stdlib.h> #include <stdio.h> #include <time.h> using namespace...
C++ нужно построить рекурсивный алгоритм в общем нужен алгоритм вычисления значение функции exp(x) действительного аргумента x с точностью ε с использованием рекурсии. Нужен как можно скорее, так как завтра сдавать программу. Старый алгоритм я где-то похерил, а вот отчет по рабочей программе сохранился. подробнее

Показать сообщение отдельно
Ko
 Аватар для Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
04.07.2013, 20:46     Как можно ускорить разбор значений в строке
C++
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <fstream> 
#include <sstream>
#include <vector> 
#include <string>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <omp.h>
#include "cilk/cilk.h"
#include <map>
#include <set>
#include <iomanip>
#include "windows.h"
using namespace std;
 
 
int main()
{
    ifstream file_data_load( "Zo.bub" );
    string data_load = "";
    string str_last =""; // для вывода последнего значения 
    //////////////////////////////////////////////////////////////////////////
    float duration;
    clock_t start, finish;
    start = clock();
    //////////////////////////////////////////////////////////////////////////
    if ( file_data_load.is_open() )
    while (!file_data_load.eof())
    {
        getline( file_data_load, data_load );
        string str_load = "";
        int i_step = 0;
        for (int i = 0; i < data_load.size(); i++)
        {
            if (str_load.size() > 0)
                if ( data_load[i] == ' ' || i == data_load.size()-1 )
                {
                    if ( data_load[i] != ' ' && i == data_load.size()-1) str_load += data_load[i];
                    
                    if( i_step == 1 ) str_last = str_load;  // тут загрузка каких то значений куда либо
 
                    str_load ="";
                    i_step++;
                    continue;
                }
                str_load += data_load[i];
        }   
        data_load = "";
    }
 
    cout << "str_last: " << str_last << endl;
    //======================
    finish = clock();
    duration = (float)(finish - start) / CLOCKS_PER_SEC;
    start = clock();
    //======================
    cout <<" work_time: " << duration  << endl;
    //======================
    file_data_load.close();
 
    data_load = "";
    str_last =""; 
    ifstream file_data_load1( "Zo.bub" );
 
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 
    //////////////////////////////////////////////////////////////////////////
    float duration1;
    clock_t start1, finish1;
    start1 = clock();
    //////////////////////////////////////////////////////////////////////////
    if ( file_data_load1.is_open() )
    while (!file_data_load1.eof())
    {
        getline( file_data_load1, data_load );
        stringstream s(data_load);
        string temp = "";
        int i_step = 0;
        while (!s.eof())
        {
            s >> temp;
            if (temp.empty()) break;
            if (i_step == 1)str_last = temp;
            temp.clear();
            i_step++;
        }
    }
    cout << "str_last: " << str_last << endl;
    //======================
    finish1 = clock();
    duration1 = (float)(finish1 - start1) / CLOCKS_PER_SEC;
    start1 = clock();
    //======================
    cout <<" work_time: " << duration1  << endl;
    //======================
    file_data_load1.close();
}

представлены два метода обработки строк типа "555 155714 0 0 0" этих строк 53 305 069, между значениями 1 пробел сразу договоримся и вместо цифер могут быть слова, как максимально быстро извлечь и в данном случае 5 значений, особенно интересует как ускорить работу второго варианта.
Миниатюры
Как можно ускорить разбор значений в строке  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru