почему мой код, который берет быстро сформированную ДНК и превращает ее в вектор, вылетает при запуске

Я скомпилировал как в кодовых блоках, так и в Cygwin, но он зависает при запуске.
Файл source.txt форматируется так:

> sample1
АКТГ
GCA
GTC
> sample2
TAACG
GGCC
И DTB должен выглядеть примерно так:
DTB = (sample1, ACTGGCAGTC, sample2, TAACGGGCC)

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
ifstream myfile;
int i=0;
string seq="",holder="";
myfile.open("source.txt");
vector<string> dtb;
while (myfile>> seq)
{
if (seq.substr(0,1)==">")
{
dtb[i]=seq.substr(1,seq.length()-1);
i++;
if (i!=0)
dtb[i]=holder;
holder="";
}
else
{
holder+=seq;
}
}
cout<<dtb[0]<<"\n"<<dtb[1]<<"\n"<<dtb[2]<<"\n"<<dtb[3];
return 0;
}

-2

Решение

std::vector Объект начинается пустым. Это означает, что любое индексирование в нем будет за пределами и приведет к неопределенное поведение.

Вам нужно добавлять элементы вектора, используя, например, push_back.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector