@TODO(trivial)

@TODO(trivial)

QTimer::single( 1000, ??) 普通函数里 也可以写她 (参见TemporyInfo);
connect 她必须在Q_OBJECT修饰的类的成员函数里, 否则不行;

lable如何不继承(默认)使用父类的样式表;

QDebug重定向 (有一些系统bug会输出);

顶层widget 她的·border`设置后 依然是有的;

@DELI;

A.widget里面有个 PlainTextEdit, 然后installEventFilter(textEdit);
会发现: 这个textEdit发生的一切事件 其实你widget是捕获不到的;比如ctrl+C;
`.` 因此使用SetFocus就很重要了, 这样他就不会捕获了;

@DELI;

QWidget::childAt( QCursor::pos());

滚轮滑动时事件, 点击不是Wheel事件, 应该时click?

@TODO: 懒标记Lazy, 应该可以写成模板, 即operator+;

其实, 前缀和|差分 与 区间和查询|区间累加修改, 没有关系!!!
前缀和和差分 他俩是互为逆操作的, 前缀和的目的 就只是构造出来即可; 差分的目的 也只在于能构造出差分数组即可;

任意维度的差分;

hide != minimal

@DELI;

令: ToString是只有声明无实现;
void F( int _a){
    if( 0){
        ToString(0);
    }
} 此时编译没事, 说明编译器把`if(0)`给优化掉了
但是:
    if( _a == -1){ // 即使你保证他一定为false, 还是错误;
        ToString(0);
    }
因此, 只要出现的extern 你必须有实现, 不要放一个空壳子;

@DELI;

重复的执行这句话: conn = connect(..){ }; 不要以为 这个`connect`每次都是一个新的东西, 不是的;
这个conn确实每次是新对象, 但connect他是*Lambda*函数 他是静态的! 即在编译期就确定了的;
比如, connect里面有个static变量A, 那么你连接多少次 他们都对应的同一个;

unordered_map<TYPE_::Double_,string>; 不能用, 即使加了hash<>·;

为啥啊不能给QProcess, exe->setProperty( "testID", QVariant( _testID)), 返回值是0, 不能加动态类型?

A有纯虚函数, 但是 A的析构函数 不可以纯虚 而是虚函数;
子类的先析构 然后是父类析构; 子类可以没有析构函数;

A.h:    class ST{ T * p};

A.h和B.h 相互包含, 会出错把, 即有2个class ST{};声明; 虽然extern 是可以的;
所以 为什么成员变量是Ui * ui, 而不是Ui ui; 因为这样 不用包含头文件;
但他有个缺点, B.cpp即使`include A.h`, 他也找不到`p->`里面的东西 (参见Ui);

@DELI;

只要有纯虚函数, 他是抽象类 不可以有对象的, 因此你构造函数写不写没事, 但析构必须些;
`.` 虽然这样, 但抽象类里有函数实现是合理的, 因为如果子类不实现 就默认用父类的; (Task_::SetStatus)
虚函数继承, 他并不会自动调用父类的虚函数, 你需要手动调用;

抽象类些构造函数, 那么子类必须重写 (参见Task);

@DELI;

成员变量 ST t;   此时ST不能是声明 class ST, 必须是定义 即#include;


@DELI;

特化的类、函数, 都必须在 命名空间里, 不可以在类里;
 explicit specialization in non-namespace scope
 
@DELI;

我给你一个东西T, 他要么是编译操作, 要么是类型, 你怎么判断呢? (参见`___Modulo_::Power`);
  如果你直接`T`(比如就一行代码`int`),此时是可以的, 但有个问题 他会有警告(因为`warning: declaration does not declare anything`)
  目前做法是`T()` 构造一个对象, 因为在本场景中 `T`是个空类 效率应该不差的;

@DELI;

不同模板的类, 就是不同的类, 他们的static不是公用的

@DELI;

template< int _D> struct ST{
    static void F(){
        static bool v = 0;
        if( v == 1){ return;}
        v = 1;
        DE_(11);
    }
    void Init(){
        F();
    }
};
ST<1>的所有对象 不管调用多少次INit(), 最终`F()`只会执行1次;
但是 一旦又`ST<2>`, 那么 他的`F()` 与 `ST<1>::F()`就不是一个;

@DELI;

数据库 必须有id, 这是唯一的标识一条记录;

@DELI;

不必选择最优算法 因为他可能会很复杂 即写代码; @LINK: 

typedef/using 相当于是宏定义;
比如 using T = int;  则ST<T>会进入ST<int>的特化;

class Int128, 这样可以直接构造`Int128 a(1e30)`;

template<> struct numeric_limits<___Supimo_Algorithm::Double> : public numeric_limits<___Supimo_Algorithm::Double::__Type>{};
自己继承自己的特化(不能本身);

@DELI;

QT里 #include "./", `.`表示`.pro`文件 (而不是当前文件的位置)
当然 你使用#include "xx.h" (他是当前文件的);

@DELI;

求max/min, 如果用`O(N)`做法 即维护`ma,mi`, 他有个缺点 即你需要初始化他俩;
而使用`multiset` 很方便, 不用初始化;

你的代码里 访问*源文件* 是错误的; 因为exe运行起来, 就没有源文件了, 比如客户端;

@DELI;

QT的所有文件名 就是`.o`的名字 (跟目录无关), 即*/a.cpp是会冲突的;

@DELI;

QDebug<<重载 不能加引用, 因为标准库里 比如QDir 你就按照人家的写法;
qDebug().noquote() 不会加`\转义`, 否则 会加; 你可以测试`qDebug()<< __FILE__`;



#define A(_a)  // _a不可以有逗号?  A( pair<int,int>); 对的, 即使`A( (...) )`也不行;
解决:  us

@DELI;

MOD_ == 0, 不行?

@DELI;

int main(){
	Widge w0, w1;
}
即使你展示很很多窗口, 他还是一个*进程*;

@DELI;

宏定义: `AaaBbbCcc_`不要用驼峰, 而是用`AAAbbbCCC_`;

@DELI;

template<T> void F( T);
template<> void F<int>( int); // 优先级低
void F(int); // 优先级高
.. 但是 `template< T> void F< set<t> >, 是错误的, 函数不支持特化;

@DELI;
@DELI;

T * ptr = &A;
connect( ptr, ...); // 这个函数绑定的 是`A`把? 不是B;  研究一个对象析构 他的connect会启动清除把;
ptr = &B;  

  FOR_( id, 0, page1_btns.size()-1){
            connect( page1_btns[id], &QPushButton::clicked, this, [&,id](){
            两个id...

@DELI;

__FILE__: `../../Test/a.cpp`, 他虽然是*源文件*的位置 他`.`是你`exe`的位置;
所以 你`QFile`的位置是`.exe`的文件 不是你`pro`文件的(程序都运行了 源代码早没了);

@DELI;

自己对`double`输出 (0.5 + 0.25 + 0.125, 变成5+25+125)

@DELI;

能用`DeleteLater` 就别用delete;

即便是2个窗口 他还是一个进程ID;

@DELI;

打开监听`0端口`: (0端口特殊 不能用);
  TCP    0.0.0.0:50619          0.0.0.0:0              LISTENING       3056
  TCP    [::]:50619             [::]:0                 LISTENING       3056
  
客户端链接`1`端口: (一会就没了)
  TCP    127.0.0.1:50624        127.0.0.1:1            SYN_SENT        3056
  
客户端调用`connectToHost`后, 先进入ConnectingState, 过了一会后 会进入`UnconnectedState `;

@DELI;

建议: 对于静态成员, 不应该用`obj.`的方式 就应该强迫用`T::`;

@DELI;

双指针的算法模板;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值