У меня есть программа, которая берет текстовый файл ДНК-строк, разбивает их на подстрочные константы и подсчитывает, сколько раз появляется уникальная подстрока. Мой единственный вопрос, имеющий это признают строковое значение «N» и игнорировать его в файл ... например, текстовый файл, например так:Как игнорировать одно строковое значение в неупорядоченной карте/карте?
ACNTG
АКТГ
ACTG
разделил бы последовательность dna на 3-километры, следовательно, первое целое число. Проблема в том, что я хочу игнорировать N и двигаться дальше, не включая N в уникальном строковом значении. поэтому выход будет ...
ACT, CTG, TGA ... и так далее, игнорируя значение N. вот часть моего кода, что я считаю, что часть должна быть включена в:
#include <fstream>
#include <iostream>
#include <string>
#include <unordered_map>
std::string kmer = "";
std::unordered_map<std::string, int > dna;
for(int i = 0; i< s.length() ; ++i){
int z= 0;
kmer = s.substr(z,k);
++z;
if (kmer.length() != k){
break;
}
//DONT UNDERSTAND WHY THIS WOULDNT WORK
if(!dna.find("N")) !=std::string::npos)){
dna[kmer]++;
}
}
for (std::unordered_map<std::string,int>::iterator it=dna.begin(); it!=dna.end(); ++it){
std::cout << it->first << " " << it->second << std::endl;
}
f.close();
return 0;
}
как вам удалось разобрать этот первый '!' В состоянии? : D +1 Это немного озадачило меня. Также эти строки выпрашивают определенный пользовательский хеш – Ap31
@ Ap31 Я только что получил то, что вы сделали. Благодаря! Пока вы не подняли его, я просто этого не видел. Иногда близорукость окупается :-) –
хорошо, что вы все еще могли дать правильный ответ, хотя я даже не мог понять, что должно означать это выражение. Я должен сказать, что скобки все еще не совсем скомпонованы в вашем текущем решении: D – Ap31