鍍金池/ 問答/ C++問答
網(wǎng)妓 回答

如果是自主繪制單元格背景,應(yīng)該還判斷下當(dāng)前單元格是否被選中:datagridview[col,row].Selected
然后根據(jù)選中與否,選擇e.CellStyle.BackColor或SelectionColor

焚音 回答

編譯成什么了?如果有C風(fēng)格的API的話,可以用ffi。

抱緊我 回答

和"動態(tài)邊編"無關(guān). 這裏的問題只是name hiding導(dǎo)致的罷了.

因爲(wèi)這是在標(biāo)準(zhǔn)文檔中有著明確規(guī)定的.

§ 6.3.10

  1. The declaration of a member in a derived class (Clause 13) hides the declaration of a member of a base class of the same name;

需要注意的是這裏只要求的name, 不要求signature, 那麼讓我們來看這份代碼,

using namespace std;
class a {
public:
    void virtual x() {
        cout << "x" << endl;
    }
    void xx() {
        cout << "x1" << endl;
    }
    void xx(int)
    {
        cout << "call: void xx(int))" << endl;
    }
};

class b :public a {
public:
    void x() {
        cout << "y" << endl;
        xx(1);
    }
    void xx() {
        cout << "y1" << endl;
    }
};

int main()
{
    b b1;
    a* z = &b1;
    z->x();
}
prog.cc:21:9: error: too many arguments to function call, expected 0, have 1; did you mean 'a::xx'?
        xx(1);
        ^~
        a::xx
prog.cc:11:10: note: 'a::xx' declared here
    void xx(int)
         ^
1 error generated.
1

clang告訴我們在b中是看不到a中的void xx(int). 爲(wèi)什麼呢? 就是因爲(wèi)上面所說的, 同時滿足了兩個條件:

  1. xx是name.
  2. xx同時在ab中出現(xiàn)

所以結(jié)果就是hides the declaration.

好, 我們來坐下實驗, 因爲(wèi)這兩個條件要同時滿足, 即成交集, 如果我們破壞了第二個條件, 把b中的xx函數(shù)移除, 那麼這個hiding會怎麼樣呢? 理論上就會消失, 到底是不是呢?

#include <iostream>
using namespace std;
class a {
public:
    void virtual x() {
        cout << "x" << endl;
    }
    void xx() {
        cout << "x1" << endl;
    }
    void xx(int)
    {
        cout << "call: void xx(int))" << endl;
    }
};

class b :public a {
public:
    void x() {
        cout << "y" << endl;
        xx(1);
    }
};

int main()
{
    b b1;
    a* z = &b1;
    z->x();
}
y
call: void xx(int))

果然通過編譯並且正確輸出了.

笑忘初 回答

t::Funct的成員函數(shù),有一個隱藏參數(shù)this,自然要先傳一個參數(shù)進(jìn)去。。
t1.push_back(make_shared<thread>(&t::Func, NULL)); //(1) 你這么寫也行。。

拼未來 回答

不就是搭建自己的NPM倉庫,網(wǎng)上有很多教程的,或者把自己的組件直接上傳到官方的NPM倉庫

六扇門 回答

從log里面看到提示這個軟件是自由軟件。 一般開源軟件的license指的的修改它或者用在自己項目中并且再發(fā)布來賣錢,都是允許的。 現(xiàn)在這個代碼的license 甚至都允許隨便修改以及再發(fā)布。 只是需要你將license信息和你的編譯的程序放一起. 所以你放心編譯吧。

陪我終 回答

前 2 個是警告,如果你執(zhí)意要這樣用(也就是你明白你在做什么)可以不用理會。鑒于你可能不太明白,給你解釋下為什么警告:第一個,你使用的編譯器的 sqrt 函數(shù)返回的是 long double 類型,而你把它賦值給了 long 類型的變量 b,改正方法要么把 b 改成 long double 類型,要么把 sqrt 的結(jié)果改成 long 類型;第二個,你把 long 類型的值用在了邏輯表達(dá)式里面,雖然事實上是允許的(要不就報 error,而不是 warning 了),但可能對性能有影響,不建議這樣用。

下面的那個 error,先說為什么錯:現(xiàn)在這個階段,你可以簡單把左值理解為賦值號( = )的左邊的東西,你寫的 b*b=a+100 中就是 b*b,這種寫法是不對的。

再說你的程序本意:從程序里面看,你應(yīng)該是要比較 b*b 和 a+100,而不是賦值,所以應(yīng)該寫成 b*b == a+100。

最后再談?wù)勀愕膶W(xué)習(xí)方法:猜測你可能沒有系統(tǒng)學(xué)習(xí)過計算機(jī)知識(或者單純的編程知識),可能還可能是在自學(xué),我個人是不建議直接學(xué) C 的,可以學(xué)下 Python 等動態(tài)語言。雖然現(xiàn)在大學(xué)計算機(jī)系都是用 C 作為入門課程的,因為他們覺得大家在高中都已經(jīng)有可計算機(jī)系統(tǒng)的知識(高中說我也很無奈?。6愦_實要學(xué)習(xí) C 的話,我建議你先寫正確語法(就是編譯器不報 error),再寫正確語意(連 warning 也沒有了)。語法的話,每一本 C 語言教材都會說,語意的話除了自己領(lǐng)會,像 C 陷阱與缺陷、你必須知道的495個C語言問題 等書也會講很多案例。

近義詞 回答

命令查詢版本

 pip list|grep uWSGI

如果為2,卸載

pip uninstall uwsgi

安裝uwsgi3

pip3 install uwsgi
枕頭人 回答

在 C++ 中,除了 ASCII 字符外的字符為寬字符,需要使用 L 標(biāo)識。而寬字符流有特定的輸出流,為 std::wcout。所以,正確的輸出方式為 std::wcout << L"你好" << std::endl。

另外,還需要涉及到 std::locale 的概念。std::locale 代表地域各個設(shè)定的集合。locale 文檔

每個輸入輸出流可以與一個 std::locale 進(jìn)行綁定,默認(rèn)綁定為 std::locale("C")。此處使用 std::wcout.imbue( locale ),需要設(shè)定的地域為 zh-cn,我沒有查到相關(guān)的內(nèi)容,這個地域字符串可能跟環(huán)境有關(guān)系。

最終代碼為:

#include <cstdio>
#include <locale>
#include <string>
#include <iostream>

int main() {
    auto old_locale = std::wcout.imbue(std::locale("zh-cn"));
    std::wcout << L"你好" << std::endl;

    std::cout << "old locale: " << old_locale.name() << std::endl;
    auto new_locale = std::wcout.imbue(old_locale);
    std::cout << "new locale: " << new_locale.name() << std::endl;

    printf("你好\n");

    system("pause");
}

輸出為:

你好
old locale: C
new locale: zh-cn
你好

這部分內(nèi)容較繁雜,我也沒有很了解,希望能對你有幫助。

1、通過stl實現(xiàn)

涉及到string類的兩個函數(shù)find和substr:

1、find函數(shù)
原型:size_t find ( const string& str, size_t pos = 0 ) const;
功能:查找子字符串第一次出現(xiàn)的位置。
參數(shù)說明:str為子字符串,pos為初始查找位置。
返回值:找到的話返回第一次出現(xiàn)的位置,否則返回string::npos

2、substr函數(shù)
原型:string substr ( size_t pos = 0, size_t n = npos ) const;
功能:獲得子字符串。
參數(shù)說明:pos為起始位置(默認(rèn)為0),n為結(jié)束位置(默認(rèn)為npos)
返回值:子字符串

2、通過使用strtok()函數(shù)實現(xiàn)

原型:char strtok(char str, const char *delim);
功能:分解字符串為一組字符串。s為要分解的字符串,delim為分隔符字符串。
描述:strtok()用來將字符串分割成一個個片段。參數(shù)s指向欲分割的字符串,參數(shù)delim則為分割字符串,當(dāng)strtok()在參數(shù)s的字符串中發(fā)現(xiàn)到參數(shù)delim的分割字符時 則會將該字符改為0 字符。在第一次調(diào)用時,strtok()必需給予參數(shù)s字符串,往后的調(diào)用則將參數(shù)s設(shè)置成NULL。每次調(diào)用成功則返回被分割出片段的指針。

憶往昔 回答

Base64是一種用64個字符來表示任意二進(jìn)制數(shù)據(jù)的方法。這個算法會使傳輸數(shù)據(jù)量變大,但你解碼出來的圖片跟原來是一樣的,所以圖片變大是你的代碼有問題

傲嬌范 回答
Intent intent1 = new Intent(getApplicationContext(), RemindReceiver.class);
intent.putExtra**("content", remind.getTitle());
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent1, 0);

intent1 intent
            
            
嘟尛嘴 回答

其實也簡單,將你的自定義模板在方法內(nèi)轉(zhuǎn)換為等價的正則表達(dá)式,然后再匹配不就可以了。

深記你 回答

有一些優(yōu)化的思路,不知道是不是適合你們的項目

  1. 使用happyPack,多進(jìn)程構(gòu)建
  2. 把公共文件拆分到webpack的external里面去,沒必要每次都去編譯
  3. 開啟tree-shaking和對進(jìn)程壓縮
過客 回答

先獲取到終端上的多余字符,然后再等待用戶輸入。

純妹 回答

根據(jù)錯誤是卡到Android 系統(tǒng)變量的問題!

神曲 回答

rxjs github上有一句話做了說明,引入ObservableSubjectSubscription最好的方式就是

To import only what you need by patching (this is useful for size-sensitive bundling):
import { Observable } from 'rxjs/Observable';

也就是說,需要什么,就去對應(yīng)的準(zhǔn)備包下引用。
尤其是當(dāng)你的應(yīng)用很大時,希望盡量壓縮打包的bundle的大小,這個時候import的路徑就尤為重要了。
如果使用這種方式 import { Observable } from 'rxjs', 打包的時候會把rxjs下的內(nèi)容都打到bundle里面,這顯然是沒有必要的。

離魂曲 回答
  1. 復(fù)制代碼
  2. 新建文本文檔
  3. 擴(kuò)展名改為.bat或.cmd
  4. 粘帖代碼
  5. 保存
  6. 雙擊運(yùn)行
  7. 或cmd輸入路徑運(yùn)行
未命名 回答

在windows系統(tǒng)下,我更推薦打開ftp,然后通過FreeFileSync這類同步軟件操作。這個軟件比一些單純的FTP軟件更加可視及可控。

空白格 回答

你在用operator+的時候, 是按值傳入的, 沒有改變part. 而push_back()時, 改變了part, 在第三個ifpart的值與你預(yù)期就不符了, 你把第二個例子都改成string temp = part; temp.push_back(...); __generateP...(..., temp, ...);應(yīng)該也能AC了.

PS: 自己寫代碼時, 別用雙下劃線開頭, 不知道你是從那裏學(xué)來的這個習(xí)慣, 在c++中必須摒棄, 因爲(wèi)這些都是保留字, 是留給標(biāo)準(zhǔn)庫用的, 你一旦起了這樣的名, 就是UB了. 所以窩看py時, 總是非常不爽...