我尝试做的是将 $CI =&get_instance();
$CI->load->model('articles_model');
$parameter = $CI->articles_model>getarticle($id);
的所有值初始化为1,其中对中的字符只包含小写字母和空格。
即。我想初始化所有地图m [' a'' a'] m [' a' a' b'] ... m [' z',' z']到1.有没有简单的方法可以做到这一点?
如果有帮助,我试图解密使用替换密码加密的消息,我必须为所有字母对创建双字节。
答案 0 :(得分:2)
尝试做这样的事情:
for(char i = 'a'; i<='z'; i++){
for(char j = 'a'; j<='z'; j++){
m.insert(make_pair(make_pair(i,j),1));
}
}
答案 1 :(得分:1)
要处理'a'
和'z'
之间存在其他字符(例如EBCDIC)的棘手案例,您可以这样做:
std::map<std::pair<char, char>, double> m;
const auto letters = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
};
for (auto c1 : letters) {
for (auto c2 : letters) {
m.emplace(std::make_pair(c1, c2), 1.);
}
}
Boost允许letters
的初始化:
const auto letters = "abcdefghijklmnopqrstuvwxyz"
| boost::adaptors::sliced(0, 26); // remove trailling '\0'
答案 2 :(得分:0)
for (char i = 'a'; i <= 'z'; ++i){
for (char j = 'a'; j <= 'z'; ++j){
m[std::make_pair(i, j)] = 1;
}
}
为了至于清晰起见,将难以更好。