手動debug, 某些情況有用.
t(
int root = 0;
dfs(root);
)int age = 97;
v(age)
vector> tree(2);
tree[0] = ;
log() << "hello vector:" << tree << 1;
log() << "hello\n string:" << string("\n_n/") << 2;
try line 4
done line 4
age = 97
hello vector: vector(vector(0, 1), vector()) 1
hello
string: "\n_n/" 2
#define t(f) cerr << "\ntry line " << __line__ << endl;\
f;\cerr << "\ndone line " << __line__ << endl;
#define v(x) cerr << #x << " = " << x << endl;
class log
~log()
bool autoinsertspace() const
log& space(bool sp = true)
// string
log& operator<< (const string &s)
// vector
template log& operator<< (const vector&v)
(*this).space(initspace) << ")";
return (*this);
}// default
template log& operator<< (const t &x)
private:
void replace(string &str, const string &from, const string &to)
}bool m_space;
};
以上展示了向log()註冊新型別的一種方法, 即新增類函式. 也可以通過在類外過載《操作符的方式註冊. 注意, 無論哪種方法都要確保恢復space狀態.
例如:
struct time ;
log& operator<< (log &lg, const time &time)
巨集定義與巨集替換
一.c c 語言中使用巨集的主要目的主要有 3 個 1.提高 的可讀性 把用到的常量定義成有意義的名字 2.無需函式呼叫,執行效率高 對於一些簡單的操作,無需呼叫函式,雖然程式設計是強調模組化,但是函式呼叫時,需要保護現場和恢復現場。這些都需要耗時。對於複雜的操作來講,這些耗時可以不計,但是對於簡單...
巨集定義與巨集替換
一.c c 語言中使用巨集的主要目的主要有 3 個 1.提高 的可讀性 把用到的常量定義成有意義的名字 2.無需函式呼叫,執行效率高 對於一些簡單的操作,無需呼叫函式,雖然程式設計是強調模組化,但是函式呼叫時,需要保護現場和恢復現場。這些都需要耗時。對於複雜的操作來講,這些耗時可以不計,但是對於簡單...
巨集與125元
今年7月初,我作為課程設計的一名負責人,領導了乙個連我在內4人的開發團隊,開發了乙個簡易的 航班訂票系統 我定義了所需的資料結構,包括這樣乙個struct typedef struct passenger passenger,ppassenger 這之後每每要新建結點的時候,都得這麼寫 ppasse...