当前位置: 编程技术>综合
本页文章导读:
▪C++Primer再读读书笔记:第三章 一、标准库string类型
1、string对象的定义和初始化
2、从标准输入读取string,string类型的输入操作符:
读取并忽略开头所有的空白字符读取字符直至在此遇到.........
▪Use 'LimitInternalRecursion' to increase the limit if necessary
今天查看APACHE日志发现了大量的这样的错误
[Sat Jan 12 06:33:25 2013] [error] [client ] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if nec.........
▪android 内存可用空间计算 android里,activity后台运行是可以被系统关闭的,当空间不够时,所以计算可用空间
包括两正在运行的除了service的所有进程。 这句理解了 ,才看的懂下面的公式。
经过查看android4.0系统的管.........
[1]C++Primer再读读书笔记:第三章
来源: 互联网 发布时间: 2013-11-10
一、标准库string类型
二、标准库vector类型
三、迭代器(iterator)
四、标准库bitset类型
1、string对象的定义和初始化
2、从标准输入读取string,string类型的输入操作符:
- 读取并忽略开头所有的空白字符
- 读取字符直至在此遇到空白字符,读取终止
3、读入未知数目的string对象
string word; while(cin >> word) cout<<word<<ends;
4、用getline读取整行文本:getline不忽略行开通的换行符,遇到换行符就将停止读取并返回。
string line;//每次输出一行文本 while(getline(cin, line)) cout<<line<<endl;
5、string对象比较操作是区分大小写的,即同一个字符的大小写形式被认为是两个不同的字符。
6、string对象的下标从0开始,如果s是一个string对象且s不空,则s[0]就是字符串的第一个字符,s[1]就是第二个,s[s.size()-1]则是最后一个字符。
7、标准库不要求检查索引值,所有索引的下标越界是没有定义的,会导致严重错误。
8、string对象中字符的处理
string str="HELLO WORLD!!!"; for(size_type index=0; index != str.size(); ++index) str[index] = tolower(str[index]); cout<<str<<endl; //cout the lower
vector是一个类模版(class template),vector不是一种数据类型,可以用来定任意多种数据类型,其每一种都指定了其保存的类型,如vector<int>、vector<string>
1、vector对象的定义和初始化:vector对象的重要属性就在于可以在运行时高效地添加元素,虽然可以在给定元素个数的vector对象预先分配内存,但更有效的方式是先初始化一个空的vector对象,然后再动态的增加元素。
2、vector的对象操作
使用size_type类型时,必须指出该类型是在哪里定义的,vector类型总是包括vector的元素类型:
vector<int>::size_type //ok vector::size_type //error
3、下标操作不能添加元素:vector用push_back来添加元素
for(vector<int>::size_type ix=0; ix!=10; ++ix) ivec.push_back(ix);
必须是已存在的元素才能用下标操作符进行索引,通过下标操作进行赋值时,不会添加任何元素。仅能对确知已存在的元素进行下标操作,对于下标操作符仅能提取确实已存在的元素,
vector<int> ivec; //empty vector cout<<ivec[0]; //Error:ivec has no elements vector<int> ivec2(20) //vector with 20 elements cout<< ivec2[20]; //Error:elements 0....19
是一种检查容器内元素并遍历元素的数据类型。迭代器对所有的容器都实用。每种容器都定义了自己的迭代器类型。如vector:
vector<int>::iterator iter;
1、begin和end操作:用于返回迭代器。如果有元素begin返回迭代器指向第一个元素,end返回迭代器指向vector的”末端的下一个“指向一个不存在的元素:
vector<int>::iterator iter = ivec.begin();
由end操作返回的迭代器并不指向vector中任何实际的元素,相反,他只是起一个哨兵(sentinel)的作用,表示已处理完vector中所有元素。
2、const_iterator:只能用于读取容器内元素,但不能改变其值。不要将const_iterator对象与const的iterator对象混淆起来,声明一个const迭代器时,必须初始化迭代器,一旦初始化后,就不能改变它的值。
vector<int> nums(10); const vecotr<int>::iterator cit = nums.begin(); *cit = 1; //ok ++cit; //Erorr
任何改变vector长度的操作都会使已有的迭代器失效,例如,在调用push_back之后,就不能再信赖指向vector的迭代器的值。
1、用unsigned值初始化bitset对象:該值将转换成二进制的位模式,如果bitset类型长度打印unsigned long值的二进制位数,其余的高阶位将置为0,而小于则只用unsigned值中的低阶位,将超过的高阶位丢弃。
2、用string对象初始化bitset对象:string对象直接表示为位模式,string对象和bitset对象之间是反向转化的,string对象的最右边字符用来初始化bitset对象的低阶位。
3、bitset对象的操作
作者:wangqiulin123456 发表于2013-1-12 13:25:37 原文链接
阅读:54 评论:0 查看评论
[2]Use 'LimitInternalRecursion' to increase the limit if necessary
今天查看APACHE日志发现了大量的这样的错误
[Sat Jan 12 06:33:25 2013] [error] [client ] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
发了很长时间才找到原因,
.htaccess 这个文件是有继承性的,
我的网站目录是放在/opt/www
子域名是放在/opt/www/image/
这样子域名会继承根目录的.htaccess
解决方法就是创建一个链接文件夹 ln -s /opt/www/image/
修改 vi /etc/apache2/sites-available/default
DocumentRoot /opt/image <Directory /opt/image> Options -Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny allow from all </Directory>
已有 0 人发表留言,猛击->>这里<<-参与讨论
ITeye推荐
- —软件人才免语言低担保 赴美带薪读研!—
[3]android 内存可用空间计算
android里,activity后台运行是可以被系统关闭的,当空间不够时,所以计算可用空间
包括两正在运行的除了service的所有进程。 这句理解了 ,才看的懂下面的公式。
经过查看android4.0系统的管理应用程序的源码,获得。
思路:
可用空间 = 闲置空间 + 缓存 + 所有非服务进程
代码:
memInfoReader.getFreeSize()+ memInfoReader.getCachedSize()-backService
+ backapp;
参考:
ActivityManager.MemoryInfo: 系统可用内存信息
ActivityManager.RecentTaskInfo: 最近的任务信息
ActivityManager.RunningAppProcessInfo: 正在运行的进程信息
ActivityManager.RunningServiceInfo: 正在运行的服务信息
ActivityManager.RunningTaskInfo: 正在运行的任务信息
已有 0 人发表留言,猛击->>这里<<-参与讨论
ITeye推荐
- —软件人才免语言低担保 赴美带薪读研!—
最新技术文章: