update
This commit is contained in:
parent
4175396f04
commit
2264591687
20
src/main.cpp
20
src/main.cpp
@ -15,6 +15,7 @@
|
|||||||
#include <string_view>
|
#include <string_view>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
|
||||||
// 这两个宏用来申请读入和读出流,实现反射并输出日志,获取申请流的变量名字
|
// 这两个宏用来申请读入和读出流,实现反射并输出日志,获取申请流的变量名字
|
||||||
@ -34,7 +35,21 @@ void reverseComplement(auto &DNAsequence, const size_t buf_size) //注意这里
|
|||||||
{'G', 'C'}, {'g', 'C'}
|
{'G', 'C'}, {'g', 'C'}
|
||||||
};
|
};
|
||||||
|
|
||||||
// std::reverse(DNAsequence.begin(), DNAsequence.begin() + buf_size); //翻转DNA序列 //太耗时,一遍过
|
for(std::remove_const_t<decltype(buf_size)> i=0 ; i<=(buf_size/2) ; i++){ //注意边界条件
|
||||||
|
const auto left=i,right=buf_size-i;
|
||||||
|
const auto lit = complement.find(DNAsequence[left]);
|
||||||
|
const auto rit = complement.find(DNAsequence[right]);
|
||||||
|
|
||||||
|
if(rit!=complement.end()&&rit!=complement.end())[[likely]]{ // likely 表示 这个if分支更容易访问到
|
||||||
|
DNAsequence[left] = lit->second;
|
||||||
|
DNAsequence[left] = rit->second;
|
||||||
|
std::swap(DNAsequence[left],DNAsequence[right]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
旧算法
|
||||||
|
std::reverse(DNAsequence.begin(), DNAsequence.begin() + buf_size); //翻转DNA序列 //太耗时,一遍过
|
||||||
|
|
||||||
for (std::remove_const_t<decltype(buf_size)> i = 0; i < buf_size; ++i) {
|
for (std::remove_const_t<decltype(buf_size)> i = 0; i < buf_size; ++i) {
|
||||||
auto it = complement.find(DNAsequence[i]);//查表并替换
|
auto it = complement.find(DNAsequence[i]);//查表并替换
|
||||||
@ -42,6 +57,9 @@ void reverseComplement(auto &DNAsequence, const size_t buf_size) //注意这里
|
|||||||
DNAsequence[i] = it->second;
|
DNAsequence[i] = it->second;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user