Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 6

Visual Studio 2010 не видит vector в C++

26.04.2016, 12:57. Показов 3812. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Прошу помощи у знающих людей...Vector не распознается как тип, но и такое чувство, что в самом коде где-то накосячила, так как студия выдавала самые разнообразные ошибки, какие могла...Может кто-то свежим взгдядом сможет увидеть косяк?

P.S. в студию подключена библиотека pcap, код должен найти аномалию в трафике(расположен в dump'е, d.pcap)
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
#include <string>
#include <iostream>
#include <pcap.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <vector>
#include <memory>
using namespace std;
using std::vector;
const struct packet
{
    double time;
    int length;
};
 
//специальная структура, 
//содержащая длину пакета и время получения
 
void poisk(vector <packet> &vec, int length)
{
    const int spanNumber = 1000; // число интервалов, на которые разбивается трафик
    double duration; // длительность захвата трафика
    double spanStep; // длина одного интервала
    double Sigma; // среднеквадратическое отклонение
    double Average = 0; //среднее значение (мат. ожидание)
    double SpansSum = 0;
    double ResultSum = 0;
    double Spans[spanNumber]; //массив,содерж. потоки трафика в отд. интервалы времени
    struct tm timeinf;
    int numb = 0;
    int k = 0;
    duration = vec[length - 1].time - vec[0].time;
    spanStep = (double)(duration / spanNumber);
    for (int i = 0; i < spanNumber; i++) // обнуление массива Spans
        Spans[i] = 0; 
    for (double j = vec[0].time + spanStep; j <= vec[length - 1].time; j += spanStep)
    { // заполнение массива Spans:
        for (int p = 0; p < length; p++)
            if ((vec[p].time <= j) && (vec[p].time >= (j - spanStep)))
                Spans[k] += 1;
        Spans[k] /= spanStep;
        k++;
        if (j < vec[60000].time) numb++;
    }
    for (int i = 0; i < numb; i++)
        SpansSum += Spans[i];
    Average = SpansSum / numb;
    for (int i = 0; i < numb; i++)
        ResultSum += pow(Average - Spans[i], 2);
    Sigma = sqrt(ResultSum / numb); // расчет среднеквадратического отклонения
    for (int i = 10; i < spanNumber; i++)
    {
        // проверка правила 3-х сигм - обнаружение аномалии
        if (abs(Average - Spans[i])>3 * Sigma) 
        {       
            
            cout << "Anomaly start was detected \n";
            break;
        }
    }
}
 
void poisk(vector<packet>& vec, int length);
 
void main()
{
    string file = "D:\d.pcap";
    char errbuff[PCAP_ERRBUF_SIZE];
 
    pcap_t * pcap = pcap_open_offline(file.c_str(), errbuff);
    struct pcap_pkthdr *header;
    const u_char *data;
 
    u_int packetCount = 0;
    while (int returnValue = pcap_next_ex(pcap, &header, &data) >= 0)
        ++packetCount; // подсчет общего количества пакетов
    vector<packet> vec(packetCount);
    pcap = pcap_open_offline(file.c_str(), errbuff);
    packetCount = 0;
    while (int returnValue = pcap_next_ex(pcap, &header, &data) >= 0) // заполнение вектора "vec" данными из пакетов
    {
        vec[packetCount].time = ((double)header->ts.tv_sec + (double)header->ts.tv_usec / 1000000);
        vec[packetCount].length = header->caplen;
        ++packetCount;
    }
    cout << "\nAnaliziruem...\n\n";
    poisk(vec, packetCount);
    cout << "\n\n Press any key to exit.";
    _getch();
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2016, 12:57
Ответы с готовыми решениями:

Visual Studio 2010 не видит Framework 4.5
я установил framework 4.5, но когда запускаю свою студию 2010, то в окне с выбором нового проекта, чуть выше в комбобоксе выбор платформы ...

Visual Studio 2010 не видит типы проектов XNA
Установил XNA 4, запустил студию, в меню появилась запись XNA Game, но ни одного проекта нет, соответственно не могу ничего написать.

Чем отличается Microsoft Visual C++ 2010 Express от Visual Studio 2010 Ultimate
Подскажите пожалуйста, в чем разница Microsoft Visual C++ 2010 Express от Visual Studio 2010 Ultimate. Всем ответившим большое спасибо)))

10
68 / 67 / 59
Регистрация: 14.07.2013
Сообщений: 251
26.04.2016, 13:08
Бегло ошибок не увидел. В студии же есть такая штука что надо писать #include "stdafx.h" самым первым инклудом
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.04.2016, 13:35
Текст ошибки давай.
0
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 6
26.04.2016, 13:35  [ТС]
Цитата Сообщение от akaAxeL Посмотреть сообщение
Бегло ошибок не увидел. В студии же есть такая штука что надо писать #include "stdafx.h" самым первым инклудом
не распознаёт почему-то, может нужно отдельно, как библиотеку подключать?
0
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 6
26.04.2016, 13:49  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Текст ошибки давай.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
26.04.2016, 13:51
наверное недействительный итератор. сам плавал в этом болоте.
0
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 6
26.04.2016, 13:55  [ТС]
Цитата Сообщение от RAFA91 Посмотреть сообщение
наверное недействительный итератор. сам плавал в этом болоте.
и как же именно выбираться?
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
26.04.2016, 13:59
Цитата Сообщение от asya_piterskaya Посмотреть сообщение
и как же именно выбираться?
наверное для начала надо найти эту строку где итератор становится недействительным.

такое например бывает при вставке и удалении элемента из вектора.

короче при всех телодвижениях с вектором.

сам сопли жевал в свое время.

самый простой вариант - поставить итератор на начало контейнера.
0
68 / 67 / 59
Регистрация: 14.07.2013
Сообщений: 251
26.04.2016, 14:00
Лучший ответ Сообщение было отмечено asya_piterskaya как решение

Решение

Вы уверены что задавая размер в 78 строчке, и в 88 строчке вызывая функцию счетчик не больше чем был задан. Также
C++
1
if (j < vec[60000].time) numb++;
там точно есть 60000 элемент
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
26.04.2016, 14:02
проверяйте программу тут http://ideone.com
0
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 6
26.04.2016, 14:06  [ТС]
Цитата Сообщение от akaAxeL Посмотреть сообщение
Вы уверены что задавая размер в 78 строчке, и в 88 строчке вызывая функцию счетчик не больше чем был задан. Также
C++
1
if (j < vec[60000].time) numb++;
там точно есть 60000 элемент

Господи, СПАСИБО!!! Видимо, глаз уже замылился! Там 10 000 должно быть, а я уже который час бьюсь!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.04.2016, 14:06
Помогаю со студенческими работами здесь

Будет ли всегда программа написанная на Visual Studio 2010 открываться в Visual Studio 2003 ?
Будет ли всегда программа написанная на Visual Studio 2010 открываться в Visual Studio 2003 ?

Открыть проект Visual Studio 2015 в Visual Studio 2010
Здравствуйте не могу открыть проект созданный в Visual Studio 2015 в Visual Studio 2010.

Учебный материал Visual Studio 2010/Visual Studio 2008
Приветствую. Работаю программистом и не знаю всех особенностей/возможностей среды разработки. Подскажите книгу или статьи по ...

Отличие сборок Visual Studio 2008 от Visual Studio 2010
Здравствуйте, товарищи! Пытаюсь собрать библиотеку libvbucket, используя Visual Studio 2008. Проблема в том, что библиотека...

Проект C# Visual Studio 2010 перевести в Visual Studio 2005
Подскажите как проект создан в C# Visual Studio 2010 перевести в версию Visual Studio 2005, пожалуйста..


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru