鍍金池/ 問答/ C++問答
冷眸 回答

V8曾經(jīng)有尾遞歸優(yōu)化,但現(xiàn)在已經(jīng)刪掉了
因為尾遞歸優(yōu)化會破壞函數(shù)的調(diào)用棧信息

她愚我 回答

1.如果有固定位數(shù),并且不太多的話,你可以先把所有滿足的結(jié)果列舉出來,存在一個數(shù)組里,然后用需要判斷的變量與數(shù)組里的每一項比較。
2.如果不想列舉的話,臥槽,兄弟你這規(guī)則有點奇怪啊,什么鬼都能叫順子嗎~~

祉小皓 回答

C語言中自加++自減--運算的數(shù)據(jù)類型可以是Float和Double!
自加,自減運算符是系統(tǒng)提供的一種方便的數(shù)學(xué)運算書寫格式,可操作的變量類型包括:整型、浮點型、單字符型、指針類型
如:
int a=0; a++;
double b=2.1; b++; //b++后,b=3.1
char ch='a' ; ch++; //ch++后,ch='b' ;
int a[]={1,2,3}, *p=a; p++; //開始p指向數(shù)組第一個元素1,p++后,p指向下一個元素2

壞脾滊 回答
  1. 看你的描述我猜測你是在寫一個類似nginx的http服務(wù)代理或者竄改器,你想在特定的http請求中添加http頭信息,不知道我對你要實現(xiàn)的功能理解是否正確。
  2. 如果是要做http請求修改的話,比較推薦的做法對http請求進(jìn)行解析,解析到一個完整的http請求后再修改這個http請求,然后再轉(zhuǎn)發(fā)給后端其他業(yè)務(wù),如果只是在收包的時候判斷關(guān)鍵字然后在關(guān)鍵字后添加你要加的頭,這么處理是不完善的因為你的關(guān)鍵字可能分兩次包被應(yīng)用層接收,簡單點說,你的關(guān)鍵字是"User-Agent",那么有可能第一次收包結(jié)尾是"User",第二次收包開頭是"-Agent"。
  3. c語言的話推薦使用開源的http-parser庫來做http請求解析,http-parser托管在GitHub上,傳送門:https://github.com/arnoldlu/h...。
款爺 回答
必須反駁 “循環(huán)是不行的”
function s(){
    let n = res;
    let r = [...n];
    do{
        let N_r = [];
        for(let node of r){
            delete(node["code"]);
            if(node.children){
                N_r = N_r.concat(node.children);
            }
        }
        r = N_r;
    }while(r.length);
    return n; 
}
心夠野 回答

沒上線,費點力氣還是能改的。
把項目工程的編碼、文件存儲的編碼、過濾器編碼全部修改一下吧,如果有jsp的話頁面中encoding的聲明也要改一下。

如果有判斷字段長度的地方,UTF8是按照三個字節(jié),GBK是2個字節(jié),也需要修改。

當(dāng)然,最好的辦法是說服客戶,如果是空數(shù)據(jù)庫,客戶不想費事修改,給權(quán)限的話你自己動手來吧;但如果和其它數(shù)據(jù)庫放在一塊就不太可能修改了。

溫衫 回答

如果打印的是char,應(yīng)該在格式說明里加入長度描述符hh

printf("%hhx\n", c);

更多長度描述符(hh,h,l,ll ...)參考這里。

巫婆 回答

你貌似有一件事搞反了。

文件是ANSI編碼,這其實就是 Windows 的 System' local encoding 了。那么你從 ANSI 讀到 QString 的過程,不是 toLocal8Bit,而是 fromLocal8Bit。

搞明白這件事,亂碼問題就迎刃而解了。

QString readLine = configFile.readLine();

改為:

QString readLine = QString::fromLocal8Bit(configFile.readLine());

把后面那些 toLocal8Bit 都給去掉就行了。

蝶戀花 回答

把你對應(yīng)的canvas坐標(biāo)系放大
你做的transform操作對應(yīng)的都轉(zhuǎn)換到坐標(biāo)系的轉(zhuǎn)化上

墨小羽 回答

第二個 for 循環(huán)不對:

    for(; i < min(s1.size(), s2.size()); i++){
        if(s1[i] == s2[i]){
            if(s1[i] >= 'A' && s1[i] <= 'N')
                cout << 10 + s1[i] - 'A' << ":";
            else if(isdigit(s1[i]))
                cout << '0' << s1[i] << ":";
            // 此處別的情況呢?如果匹配了不是數(shù)字也不是 A~N 的字母,循環(huán)仍要繼續(xù)
            break;
        }
    }
情殺 回答

可以用正則轉(zhuǎn)換
如圖, 點擊一下 "使用正則表達(dá)式"
圖片描述

上面輸入([a-z]+)n*替換欄輸入'$1', (包括引號和空格)
最后一個(z)的逗號不好替換, 可以再處理

骨殘心 回答

C++來湊個熱鬧。

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

template <class It>
std::vector<std::vector<int>> Solution(It first, It last) {
  std::vector<std::vector<int>> result;
  while (first != last) {
    auto ite = std::adjacent_find(first, last, [](int l, int r) {return l != r-1;});
    if (ite != last)
      ++ite;
    if (std::distance(first, ite) > 1)
      result.emplace_back(first, ite);
    first = ite;
  }
  return result;
}

int main() {
  std::vector<int> vtr = {1, 2, 3, 5, 1, 2, 1};

  for (const auto &result : Solution(vtr.begin(), vtr.end())) {
    std::copy(result.begin(), result.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
  }

  return 0;
}
糖果果 回答

502 是服務(wù)端錯誤,一般是請求太多了處理不過來,你過一段時間再試試看。

哎呦喂 回答

@course.comments.sum{ |cc| cc.comment.length }

遲月 回答

test1和test2共享內(nèi)存通信方式:
test1向redis的key1中寫入數(shù)據(jù),test2讀取redis的key1數(shù)據(jù),用于流式傳輸,與隊列不同,無法判斷重讀或未讀

test1和test2隊列通信方式:
老老實實用socket吧,反正多文件的進(jìn)程間你也沒辦法加入原子鎖