python爬虫0x2
Python爬虫[toc] 正则表达式语法该表格可能出现显示错误,建议直接看课件 操作符 说明 实例 . 表示任何单个字符 [] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a‐z]表示a到z单个字符 非字符集,对单个字符给出排除范围 abc表示非a或b或c的单个字符 * 前一个字符0次或无限次扩展 abc* 表示ab、abc、abcc、abccc等 + 前一个字符1次或无限次扩展 abc+ 表示abc、abcc、abccc等 ? ? 前一个字符0次或1次扩展 abc? 表示ab、abc \ 左右表达式任意一个abc def...
题目0x2
题目0x2主要记录一些PTA解题中接触到的算法 Manacher(马拉车)(求解回文串)参考:Manacher - OI Wiki (oi-wiki.org) L2-008 最长对称子串(25 分)-CSDN博客 最长对称字串 有点难理解,自己需要自己手动模拟下。 12345678910111213141516171819202122232425262728293031323334353637383940#include<iostream>#include<string>using namespace std;string s;int p[2010];int main(){ string s; getline(cin, s); int len = s.length(), id = 0, maxlen = 0; //迄今为止找到的最右边回文串的中心。 for (int i = len; i >= 0; --i) //将偶回文串也转换为奇回文串 { s[2 * i + 2] = s[i]; s[2 * i + 1] =...
题目0x1
题目0x1主要记录解题中一些stl的函数 [toc] 字符串处理使用string标准库 当使用getline(cin,string)时,如果前面有cin>>,注意吸收换行符。 substr(a,b); 返回a开始的b个字符 erase(a); earse(a,b) 移除a之后的字符; 移除a开始的b个字符 find(“a”,b); 从前向后查找a第一次出现的位置, b(可选)查找开始的下标 ...
python爬虫0x1
Python爬虫[toc] request库123456789101112131415import requestsr = requests.get("https://www.icourse163.org")print(r.status_code) #状态码200,访问成功print(type(r)) #<class 'requests.models.Response'>#编码方式print(r.encoding) #charset字段获得,不存在默认为ISO-8859-1print(r.apparent_encoding) #备选编码,通过分析内容推断出编码r.encoding = 'utf-8' #设置编码print(r.text) #html内容print(r.headers) #http请求头print(r.content) ...
shlab
shlab 这个lab主要是考察信号的使用,还有进程创建的知识。 首先回顾一下信号处理程序的终点: 处理程序要尽可能简单。 在处理程序中只调用异步信号安全的函数。(可重入的且不能被信号处理程序中断)。 在进入处理程序时把errno 保存在某个局部变最中,在处理程序返回前恢复它。 阻塞所有的信号,保护对共享全局数据结构的访问。 首先是参数解析执行,在子进程创建过程中,设置和解除阻塞的SIGCHLD信号来避免进程在添加进job组前终止导致把不存在的子进程添加到作业列表中,书上已经给我们例子: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647void eval(char *cmdline) { char *argv[MAXARGS] = {NULL}; //初始化指针地址 int fg_bg; pid_t pid; sigset_t mask_all, mask_one,...
EffectiveCpp0x3
[toc] Resource Management 如内存,互斥锁,数据库连接,网络sockets…… 重要的是,当你不再使用它了,应该将它还给系统。 13. Use objects to manage resources. 获得资源后立刻放进管理对象(managing object) 内。“资源取得时机便是初始化时机” (Resource Acquisition Is Initialization; RAII) 。 管理对象(managing object) 运用析构函数确保资源被释放。 为什么手动释放堆内存容易出错? e.g: Investment * createlnvestment(); void f (){Investment* plnv = createlnvestment(); …… delete plnv; return; } //若……中有return导致提前返回,则会导致资源泄露,且不易察觉 std::auto_ptr:已被弃用。由于其拷贝时原先的指针会指向null,致潜在的资源泄漏和行为不确定性。auto_ptr 被 C++11 中引入的...
EffectiveCpp0x2
Effective C+ [toc] Constructors,Destructors,and Assignment Operators05. Know what functions C++ silently writes and calls C++自动为类声明copy构造函数,copy assignment操作符和析构函数。如果没有声明构造函数,编译器会生成default构造函数。 这些函数都是public且inline的。 123456789101112131415#include<iostream>class Entity{public: Entity() {} // Default constructor ~Entity() {} // Destructor Entity(const Entity& rhs) {} // Copy constructor Entity operator=(const Entity& rhs) ...
template
templatetemplates的基本用法 编译器根据你提供的规则为你编写代码。 模板定义本身不参与编译,而是编译器根据模板的用户使用模板时提供的类型参数生成代码,再进行编译。 1234567891011121314151617181920212223242526272829303132#include <iostream>#include <string>template <typename T>void Print(T value) //函数模板{ std::cout << value << std::endl;}template <typename T, int N>class Array //类模板{private: T m_Array[N];public: int GetSize() const { return N; }};int main() { Array<int, 5>...
EffectiveCpp0x1
Effective C++[toc] 导读 声明式:告诉编译器某个东西的名称和类型,但是略去细节。 123templete<typename T>class Randolfluo;std::string Print(std::string string); 定义式:提供编译器对象、函数和模板等的实际代码本体。 初始化:给予对象值的过程。 copy构造与copy赋值:通过是否有新对象被定义区分。 Accustoming youself to C++01. View C++ as a federation of...
Cpp新特性
[toc] lvalue && rvalue (C++11)Understanding lvalues and rvalues in C and C++ - Eli Bendersky’s website (thegreenplace.net) An lvalue (locator value) represents an object that occupies some identifiable location in memory (i.e. has an address). rvalues are defined by exclusion, by saying that every expression is either an lvalue or an rvalue. Therefore, from the above definition of lvalue, an rvalue is an expression that does not represent an object occupying some identifiable...