??xml version="1.0" encoding="utf-8" standalone="yes"?>国产韩国精品一区二区三区久久,99精品国产综合久久久久五月天,香蕉久久夜色精品升级完成http://m.shnenglu.com/Leon916/zh-cnWed, 07 May 2025 16:15:35 GMTWed, 07 May 2025 16:15:35 GMT60- 归ƈ排序http://m.shnenglu.com/Leon916/archive/2009/09/13/96034.htmlLeon916Leon916Sun, 13 Sep 2009 02:28:00 GMThttp://m.shnenglu.com/Leon916/archive/2009/09/13/96034.htmlhttp://m.shnenglu.com/Leon916/comments/96034.htmlhttp://m.shnenglu.com/Leon916/archive/2009/09/13/96034.html#Feedback0http://m.shnenglu.com/Leon916/comments/commentRss/96034.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/96034.html帖子Q是关于归ƈ排序的,发现错误很隐蔽(在我看来Q,后来l过调试和跟t才扑ֈ了这个错误。结果是一个很单的逻辑问题Q自己太W了Q花??个小时。哎Q还是看E序时粗枝大Ӟ

]]> - STL源码阅读1http://m.shnenglu.com/Leon916/archive/2009/09/11/95969.htmlLeon916Leon916Fri, 11 Sep 2009 14:04:00 GMThttp://m.shnenglu.com/Leon916/archive/2009/09/11/95969.htmlhttp://m.shnenglu.com/Leon916/comments/95969.htmlhttp://m.shnenglu.com/Leon916/archive/2009/09/11/95969.html#Feedback0http://m.shnenglu.com/Leon916/comments/commentRss/95969.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/95969.html 单ȝ一下: 目前看到的技巧有Qtraite技术,仿函敎ͼ仿函数都是定义了()函数q算操作W的c?/span>Q。关于仿函数可以参看http://blog.csdn.net/kingofbirdzjy/archive/2007/12/10/1926653.aspx?

]]> - 重新开?/title>http://m.shnenglu.com/Leon916/archive/2009/09/11/95945.htmlLeon916Leon916Fri, 11 Sep 2009 09:08:00 GMThttp://m.shnenglu.com/Leon916/archive/2009/09/11/95945.htmlhttp://m.shnenglu.com/Leon916/comments/95945.htmlhttp://m.shnenglu.com/Leon916/archive/2009/09/11/95945.html#Feedback0http://m.shnenglu.com/Leon916/comments/commentRss/95945.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/95945.html 代码如下Q?
1
#include <stdio.h>
2
#include <math.h>
3
4
const float E = 2.718281828;
5
6
int main(int argc, char *argv[])
7

{
8
float t, d, h, e, hh;
9
int index;
10
char temp;
11
12
while( (scanf("%c", &temp) == 1) && (temp != 'E'))
13
{
14
index = 0;
15
for( int i = 0 ; i < 2;i++)
16
{
17
switch(temp)
18
{
19
case 'T':
20
index |= 0x1;
21
scanf("%f", &t);
22
break;
23
case 'D':
24
index |= 0x2;
25
scanf("%f", &d);
26
break;
27
case 'H':
28
index |= 0x4;
29
scanf("%f", &h);
30
break;
31
default:
32
i--;
33
break;
34
}
35
scanf("%c",&temp);
36
}
37
switch(index)
38
{
39
40
case 3: // t d
41
e = 6.11 * exp(5417.7530*((1/273.16) -(1/(d+273.16))));
42
hh = (0.5555) * (e - 10.0);
43
h = t + hh;
44
break;
45
case 6: //d, h ----t
46
e = 6.11 * exp(5417.7530*((1/273.16) -(1/(d+273.16))));
47
t = h - 0.5555 * (e - 10.0);
48
break;
49
case 5: //t h ---d
50
double e;
51
e = (h-t)/0.5555 + 10.0;
52
d = 1/((1/273.16) - (log(e/6.11))/5417.753) - 273.16;
53
break;
54
}
55
printf("T %.1f D %.1f H %.1f\n", t, d, h);
56
}
57
return 0;
58
}
59

]]> - C语言文gdhttp://m.shnenglu.com/Leon916/archive/2009/04/10/79456.htmlLeon916Leon916Fri, 10 Apr 2009 03:02:00 GMThttp://m.shnenglu.com/Leon916/archive/2009/04/10/79456.htmlhttp://m.shnenglu.com/Leon916/comments/79456.htmlhttp://m.shnenglu.com/Leon916/archive/2009/04/10/79456.html#Feedback1http://m.shnenglu.com/Leon916/comments/commentRss/79456.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/79456.html
int main(int argc, char *argv[])
{
FILE *file;
FILE *fw;
if( (file = fopen("main.cpp", "r")) == NULL)
return -1;
if( (fw = fopen("text.txt", "wt")) == NULL)
return -1;
char ch;
while( (ch=fgetc(file)) != EOF )
{
fputc(ch, fw);
printf("%c", ch);
}
fclose(file);
fclose(fw);
return 0;
}
//char ch[LEN] = {0};
//while( !feof(file) )
//{
// fread(ch, sizeof(char), LEN-1, file);
// printf("%s", ch);
// fwrite(ch, sizeof(char), LEN-1, fw);
// memset(ch, 0, sizeof(char)*LEN);
//}
q是用通过调用c语言的库文g来实现?br>以下是用C++的中的stream来实现的Q但是在处理中文的时候,会出C些ؕ码?br>
//fstream fs;
// fs.open(_T("文本.txt"));
//
// char arr[LEN] = {0};
// wchar_t temp[2*LEN+1] = {0};
// int length;
// if(!fs)
// {
// cout << "Error" << endl;
// return -1;
// }
//while(!fs.eof())
//{
// fs.read(arr, sizeof(arr)-1);
// length = MultiByteToWideChar(CP_ACP, 0, arr, -1, NULL, NULL);
// MultiByteToWideChar(CP_ACP, 0, arr, -1, temp, length);
// wcout.imbue(locale("chs"));
// wcout << temp;
//}
但是通过charcdq行d却不出现qQ感觉很奇怪?br>
int main(int argc, char *argv[])
{
fstream fs;
fs.open(_T("文本.txt"));
fstream fw;
fw.open("text.txt");
char arr[LEN] = {0};
wchar_t temp[2*LEN+1] = {0};
int length;
if(!fs || !fw)
{
cout << "Error" << endl;
return -1;
}
while(!fs.eof())
{
fs.read(arr, sizeof(arr)-1);
cout << arr;
fw.write(arr, sizeof(arr)-1);
memset(arr, 0, sizeof(arr));
}
cout << endl;
fs.close();
fw.close();
return 0;
}

]]> - 一个Java的B-Tree源代?/title>http://m.shnenglu.com/Leon916/archive/2009/03/29/78271.htmlLeon916Leon916Sun, 29 Mar 2009 07:54:00 GMThttp://m.shnenglu.com/Leon916/archive/2009/03/29/78271.htmlhttp://m.shnenglu.com/Leon916/comments/78271.htmlhttp://m.shnenglu.com/Leon916/archive/2009/03/29/78271.html#Feedback3http://m.shnenglu.com/Leon916/comments/commentRss/78271.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/78271.html
]]> - 提醒http://m.shnenglu.com/Leon916/archive/2009/03/09/76032.htmlLeon916Leon916Mon, 09 Mar 2009 14:04:00 GMThttp://m.shnenglu.com/Leon916/archive/2009/03/09/76032.htmlhttp://m.shnenglu.com/Leon916/comments/76032.htmlhttp://m.shnenglu.com/Leon916/archive/2009/03/09/76032.html#Feedback0http://m.shnenglu.com/Leon916/comments/commentRss/76032.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/76032.html
]]> - lcc阅读一http://m.shnenglu.com/Leon916/archive/2008/12/26/70401.htmlLeon916Leon916Fri, 26 Dec 2008 06:37:00 GMThttp://m.shnenglu.com/Leon916/archive/2008/12/26/70401.htmlhttp://m.shnenglu.com/Leon916/comments/70401.htmlhttp://m.shnenglu.com/Leon916/archive/2008/12/26/70401.html#Feedback0http://m.shnenglu.com/Leon916/comments/commentRss/70401.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/70401.html 最Ҏ的是W二章,是关于内存管理,到完之后感觉跟STL的内存管理有点相|都是把自q理分配的内存Q当需要的内存不够用的时候,在调用malloc重新甌?br> 对于后面几章Q还没有d理解Q还需要花一些时_边读代码边看书,一定要理解它是如何理W号、标识符和连接前端和后端的接口?br>
鼓励一下自己,W一ơ读q么复杂的东西,但是q是成长的必׃路,加aQ?br>
ps:又要从头开始看了,有些东西q是不懂Q加油!Q!

]]> - std:string学习http://m.shnenglu.com/Leon916/archive/2008/12/05/68694.htmlLeon916Leon916Fri, 05 Dec 2008 14:33:00 GMThttp://m.shnenglu.com/Leon916/archive/2008/12/05/68694.htmlhttp://m.shnenglu.com/Leon916/comments/68694.htmlhttp://m.shnenglu.com/Leon916/archive/2008/12/05/68694.html#Feedback3http://m.shnenglu.com/Leon916/comments/commentRss/68694.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/68694.html之所以抛弃char*的字W串而选用C++标准E序库中的stringc,是因Z和前者比较v来,不必担心内存是否_、字W串长度{等Q而且?
Z个类出现Q他集成的操作函数以完成我们大多数情况?甚至?00%)的需要。我们可以用 = q行赋值操作,== q行比较Q?
做串联(是不是很?Q。我们尽可以把它看成是C++的基本数据类型?br> 好了Q进入正?#8230;……
首先Qؓ了在我们的程序中使用stringcdQ我们必d含头文g 。如下:
#include //注意q里不是string.h string.h是C字符串头文g
1Q声明一个C++字符?br>声明一个字W串变量很简单:
string Str;
q样我们声明了一个字W串变量Q但既然是一个类Q就有构造函数和析构函数。上面的声明没有传入参数Q所以就直接使用了string的默认的构造函敎ͼq个函数所作的是把Str初始化ؓ一个空字符丌ӀStringcȝ构造函数和析构函数如下Q?br>a) string s; //生成一个空字符串s
b) string s(str) //拯构造函?生成str的复制品
c) string s(str,stridx) //字W串str?#8220;始于位置stridx”的部分当作字W串的初?br>d) string s(str,stridx,strlen) //字W串str?#8220;始于stridx且长度顶多strlen”的部分作为字W串的初?br>e) string s(cstr) //C字符串作为s的初?br>f) string s(chars,chars_len) //C字符串前chars_len个字W作为字W串s的初倹{?br>g) string s(num,c) //生成一个字W串Q包含num个c字符
h) string s(beg,end) //以区间beg;end(不包含end)内的字符作ؓ字符串s的初?br>i) s.~string() //销毁所有字W,释放内存
都很单,我就不解释了?br>2Q字W串操作函数
q里是C++字符串的重点Q我先把各种操作函数|列出来Q不喜欢把所有函数都看完的h可以在这里找自己喜欢的函敎ͼ再到后面看他的详l解释?br>a) =,assign() //赋以新?br>b) swap() //交换两个字符串的内容
c) +=,append(),push_back() //在尾部添加字W?br>d) insert() //插入字符
e) erase() //删除字符
f) clear() //删除全部字符
g) replace() //替换字符
h) + //串联字符?br>i) ==,!=,<,<=,>,>=,compare() //比较字符?br>j) size(),length() //q回字符数量
k) max_size() //q回字符的可能最大个?br>l) empty() //判断字符串是否ؓI?br>m) capacity() //q回重新分配之前的字W容?br>n) reserve() //保留一定量内存以容U一定数量的字符
o) [ ], at() //存取单一字符
p) >>,getline() //从streamd某?br>q) << //谋值写入stream
r) copy() //某Dgؓ一个C_string
s) c_str() //内容以C_stringq回
t) data() //内容以字符数组形式q回
u) substr() //q回某个子字W串
v)查找函数
w)begin() end() //提供cMSTL的P代器支持
x) rbegin() rend() //逆向q代?br>y) get_allocator() //q回配置?br>下面详细介绍Q?br>2Q? C++字符串和C字符串的转换
C++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy()Q其中,data()以字W数l的形式
q回字符串内容,但ƈ不添?#8217;\0’。c_str()q回一个以‘\0’l尾的字W数l,而copy()则把字符串的内容复制或写入既有的
c_string或字W数l内。C++字符串ƈ不以’\0’l尾。我的徏议是在程序中能用C++字符串就使用Q除非万不得已不选用c_string。由
于只是简单介l,详细介绍掠过Q谁惌一步了解用中的注意事可以给我留a(到我的收件箱)。我详细解释?br>2Q? 大小和容量函?br>
一个C++字符串存在三U大:a)现有的字W数Q函数是size()和length()Q他们等效。Empty()用来查字W串是否为空?
b)max_size()
q个大小是指当前C++字符串最多能包含的字W数Q很可能和机器本w的限制或者字W串所在位|连l内存的大小有关pR我们一般情况下不用兛_他,应该大小
_我们用的。但是不够用的话Q会抛出length_error异常c)capacity()重新分配内存之前
string所能包含的最大字W数。这里另一个需要指出的是reserve()函数Q这个函Cؓstring重新分配内存。重新分配的大小由其参数军_Q?
默认参数?Q这时候会对stringq行非强制性羃减?br>
q有必要再重复一下C++字符串和C字符串{换的问题Q许多h会遇到这L?
题,自己做的E序要调用别人的函数、类什么的Q比如数据库q接函数Connect(char*,char*)Q,但别人的函数参数用的是char*形式
的,而我们知道,c_str()、data()q回的字W数l由该字W串拥有Q所以是一Uconst
char*,要想作ؓ上面提及的函数的参数Q还必须拯C个char*,而我们的原则是能不用C字符串就不用。那么,q时候我们的处理方式是:如果
此函数对参数(也就是char*)的内容不修改的话Q我们可以这样Connect((char*)UserID.c_str(),
(char*)PassWD.c_str()),但是q时候是存在危险的,因ؓq样转换后的字符串其实是可以修改的(有兴地可以自己试一试)Q所以我?
调除非函数调用的时候不对参数进行修改,否则必须拯C个char*上去。当Ӟ更稳妥的办法是无Z么情况都拯C个char*上去。同时我们也?
L在仍然用C字符串进行编E的高手们(说他们是高手一点儿也不Q也许在我们q穿开裆裤的时候他们就开始编E了Q哈?#8230;Q写的函数都比较规范Q那?
我们׃必进行强制{换了?br>
2Q?元素存取
我们可以使用下标操作W[]和函数at()对元素包含的字符q行讉K。但是应该注意的是操作符[]q不查烦引是否有效(有效索引
0~str.length()Q,如果索引失效Q会引v未定义的行ؓ。而at()会检查,如果使用at()的时候烦引无效,会抛?
out_of_range异常?br> 有一个例外不得不_const string a;的操作符[]对烦引值是a.length()仍然有效Q其q回值是’\0’。其他的各种情况Qa.length()索引都是无效的。D例如下:
const string Cstr(“const string”);
string Str(“string”);
Str[3]; //ok
Str.at(3); //ok
Str[100]; //未定义的行ؓ
Str.at(100); //throw out_of_range
Str[Str.length()] //未定义行?br>Cstr[Cstr.length()] //q回 ‘\0’
Str.at(Str.length());//throw out_of_range
Cstr.at(Cstr.length()) ////throw out_of_range
我不赞成cM于下面的引用或指针赋|
char& r=s[2];
char* p= &s[3];
因ؓ一旦发生重新分配,r,p立即失效。避免的Ҏ是不用?br>
2Q?比较函数
C++字符串支持常见的比较操作W(>,>=,<,<=,==,!=Q,甚至支持string与C-string的比??
str<”hello”)。在使用>,>=,<,<=q些操作W的时候是Ҏ“当前字符Ҏ?#8221;字W按字典序q行逐一?
比较。字典排序靠前的字符,比较的顺序是从前向后比较Q遇C相等的字W就按这个位|上的两个字W的比较l果定两个字符串的大小。同
Ӟstring(“aaaa”)
另一个功能强大的比较函数是成员函数compare()。他支持多参数处理,支持用烦引值和长度定位子串来进行比较。他q回一个整数来表示比较l果Q返
回值意义如下:0-相等 ?-大于 <0-于。D例如下:
string s(“abcd”);
s.compare(“abcd”); //q回0
s.compare(“dcba”); //q回一个小?的?br> s.compare(“ab”); //q回大于0的?br>
s.compare(s); //相等
s.compare(0,2,s,2,2); //?#8221;ab”?#8221;cd”q行比较 于?br> s.compare(1,2,”bcx”,2); //?#8221;bc”?#8221;bc”比较?br>怎么P功能够全的吧Q什么?q不能满你的胃口?好吧Q那{着Q后面有更个性化的比较算法。先l个提示Q用的是STL的比较算法。什么?对STL一H不通?靠,你重修吧Q?br>
2Q? 更改内容
q在字符串的操作中占了很大一部分?br>首先讲赋|W一个赋值方法当然是使用操作W?Q新值可以是string(如:s=ns) 、c_string(如:s=”gaint”)甚至单一字符Q如Qs=’j’Q。还可以使用成员函数assign()Q这个成员函数可以你更灉|的对字符串赋倹{还是D例说明吧Q?br>s.assign(str); //不说
s.assign(str,1,3);//如果str?#8221;iamangel” 是?#8221;ama”赋给字符?br>s.assign(str,2,string::npos);//把字W串str从烦引?开始到l尾赋给s
s.assign(“gaint”); //不说
s.assign(“nico”,5);//?#8217;n’ ‘I’ ‘c’ ‘o’ ‘\0’赋给字符?br>s.assign(5,’x’);//把五个x赋给字符?br>把字W串清空的方法有三个Qs=””;s.clear();s.erase();(我越来越觉得举例比说话让别hҎ懂!)?br>string提供了很多函数用于插入(insertQ、删除(eraseQ、替换(replaceQ、增加字W?br>先说增加字符Q这里说的增加是在尾巴上Q,函数?+=、append()、push_back()。D例如下:
s+=str;//加个字符?br>s+=”my name is jiayp”;//加个C字符?br>s+=’a’;//加个字符
s.append(str);
s.append(str,1,3);//不解释了 同前面的函数参数assign的解?br>s.append(str,2,string::npos)//不解释了
s.append(“my name is jiayp”);
s.append(“nico”,5);
s.append(5,’x’);
字符串操作是一个不的主题,在标准C++?string字符串类成ؓ一个标?之所以抛弃char*的字W串而选用C++标准E序库中的stringc,是因Z和前者比较v来,不必担心内存是否_、字W串长度{等Q而且作ؓ一个类出现Q他集成的操作函数以完成我们大多数情况下的需?
下面我们首先从一些示例开始学习下stringcȝ使用.
1)
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s("hehe");
cout<<s<<endl;
cin.get();
}
2)
#include <string>
#include <iostream>
using namespace std;
void main()
{
char chs[] = "hehe";
string s(chs);
cout<<s<<endl;
cin.get();
}
3)
#include <string>
#include <iostream>
using namespace std;
void main()
{
char chs[] = "hehe";
string s(chs,1,3); //指定从chs的烦?开?最后复?个字?br> cout<<s<<endl;
cin.get();
}
4)
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s1("hehe");
string s2(s1);
cout<<s2<<endl;
cin.get();
}
5)
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s1("hehe",2,3);
string s2(s1);
cout<<s2<<endl;
cin.get();
}
6)
#include <string>
#include <iostream>
using namespace std;
void main()
{
char chs[] = "hehe";
string s(chs,3); //chs?个字W作为初值构?br> cout<<s<<endl;
cin.get();
}
7)
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s(10,'k'); //分配10个字W?初值都?k'
cout<<s<<endl;
cin.get();
}
//以上是stringcd例的构造手D?都很?
9)
//赋新?br>#include <string>
#include <iostream>
using namespace std;
void main()
{
string s(10,'k'); //分配10个字W?初值都?k'
cout<<s<<endl;
s = "hehehehe";
cout<<s<<endl;
s.assign("kdje");
cout<<s<<endl;
s.assign("fkdhfkdfd",5); //重新分配指定字符串的?的元素内?br> cout<<s<<endl;
cin.get();
}
10)
//swapҎ交换
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s1 = "hehe";
string s2 = "gagaga";
cout<<"s1 : "<<s1<<endl;
cout<<"s2 : "<<s2<<endl;
s1.swap(s2);
cout<<"s1 : "<<s1<<endl;
cout<<"s2 : "<<s2<<endl;
cin.get();
}
11)
//+=,append(),push_back()在尾部添加字W?br>#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "hehe";
s += "gaga";
cout<<s<<endl;
s.append("嘿嘿"); //append()Ҏ可以d字符?br> cout<<s<<endl;
s.push_back('k'); //push_back()Ҏ只能d一个字W?..
cout<<s<<endl;
cin.get();
}
12)
//insert() 插入字符.其实,insertq用?与其他的插入操作是一L.
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "hehe";
s.insert(0,"头部"); //在头部插?br> s.insert(s.size(),"N"); //在尾部插?br> s.insert(s.size()/2,"中间");//在中间插?br> cout<<s<<endl;
cin.get();
}
13)
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg";
s.erase(0,1); //从烦?到烦?,卛_除掉?a'
cout<<s<<endl;
//其实,q可以用replaceҎ来执行删除操?br> s.replace(2,3,"");//卛_指定范围内的字符替换?",卛_相删除了
cout<<s<<endl;
cin.get();
}
14)
//clear() 删除全部字符
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg";
cout<<s.length()<<endl;
s.clear();
cout<<s.length()<<endl;
//使用earseҎ变相全删?br> s = "dkjfd";
cout<<s.length()<<endl;
s.erase(0,s.length());
cout<<s.length()<<endl;
cin.get();
}
15)
//replace() 替换字符
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg";
s.replace(2,3,"!!!!!");//从烦?开?个字节的字符全替换成"!!!!!"
cout<<s<<endl;
cin.get();
}
16)
//==,!=,<,<=,>,>=,compare() 比较字符?br>#include <string>
#include <iostream>
using namespace std;
void main()
{
string s1 = "abcdefg";
string s2 = "abcdefg";
if (s1==s2)cout<<"s1 == s2"<<endl;
else cout<<"s1 != s2"<<endl;
if (s1!=s2)cout<<"s1 != s2"<<endl;
else cout<<"s1 == s2"<<endl;
if (s1>s2)cout<<"s1 > s2"<<endl;
else cout<<"s1 <= s2"<<endl;
if (s1<=s2)cout<<"s1 <= s2"<<endl;
else cout<<"s1 > s2"<<endl;
cin.get();
}
17)
//size(),length() q回字符数量
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg";
cout<<s.size()<<endl;
cout<<s.length()<<endl;
cin.get();
}
18)
//max_size() q回字符的可能最大个?br>#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg";
cout<<s.max_size()<<endl;
cin.get();
}
19)
//empty() 判断字符串是否ؓI?br>#include <string>
#include <iostream>
using namespace std;
void main()
{
string s ;
if (s.empty())
cout<<"s 为空."<<endl;
else
cout<<"s 不ؓI?"<<endl;
s = s + "abcdefg";
if (s.empty())
cout<<"s 为空."<<endl;
else
cout<<"s 不ؓI?"<<endl;
cin.get();
}
20)
// [ ], at() 存取单一字符
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg1111";
cout<<"use []:"<<endl;
for(int i=0; i<s.length(); i++)
{
cout<<s[i]<<endl;
}
cout<<endl;
cout<<"use at():"<<endl;
for(int i=0; i<s.length(); i++)
{
cout<<s.at(i)<<endl;
}
cout<<endl;
cin.get();
}
21)
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg1111";
const char * chs1 = s.c_str();
const char * chs2 = s.data();
cout<<"use at():"<<endl;
int i;
for(i=0; i<s.length(); i++)
{
cout<<"c_str() : "<<chs1[i]<<endl;
cout<<"data() : "<<chs2[i]<<endl;
}
cout<<"c_str() : "<<chs1<<endl;
cout<<"data() : "<<chs2<<endl;
cout<<endl;
cin.get();
}
22)
// substr() q回某个子字W串
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg1111";
string str = s.substr(5,3);//从烦?开?个字?br> cout<<str<<endl;
cin.get();
}
23)
// find 查找函数
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg1111";
string pattern = "fg";
string::size_type pos;
pos = s.find(pattern,0); //从烦?开?查找W合字符?f"的头索引
cout<<pos<<endl;
string str = s.substr(pos,pattern.size());
cout<<str<<endl;
cin.get();
}
24)
// begin() end() 提供cMSTL的P代器支持
#include <string>
#include <iostream>
using namespace std;
void main()
{
string s = "abcdefg1111";
for(string::iterator iter = s.begin(); iter!=s.end(); iter++)
{
cout<<*iter<<endl;
}
cout<<endl;
cin.get();
}
一个C++字符串存在三U大:a)现有的字W数Q函数是size()和length()Q他们等效?
Empty()用来查字W串是否为空。b)max_size()
q个大小是指当前C++字符串最多能包含的字W数Q很可能和机器本w的限制或者字W串所在位|连l内存的大小有关pR我们一般情况下不用兛_他,应该大小
_我们用的。但是不够用的话Q会抛出length_error异常c)capacity()重新分配内存之前
string所能包含的最大字W数。这里另一个需要指出的是reserve()函数Q这个函Cؓstring重新分配内存。重新分配的大小由其参数军_Q?
默认参数?Q这时候会对stringq行非强制性羃?/span>
]]>- std::Vector学习http://m.shnenglu.com/Leon916/archive/2008/12/05/68638.htmlLeon916Leon916Fri, 05 Dec 2008 05:21:00 GMThttp://m.shnenglu.com/Leon916/archive/2008/12/05/68638.htmlhttp://m.shnenglu.com/Leon916/comments/68638.htmlhttp://m.shnenglu.com/Leon916/archive/2008/12/05/68638.html#Feedback0http://m.shnenglu.com/Leon916/comments/commentRss/68638.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/68638.html 按上面的语法Q创Z个vectorQ是按照v?span style="color: #ff0000;">实际元素个数
创徏新vector的。就是说Q如果v中元素是1,2,3,那么QvNew中的元素?,2,3Qƈ且,vNew?span style="color: #ff0000;">d?/span>也是3.
也就是:vNew的d量取决于v的实际元素个数?/span>
pVec->clear();
clear()只是删除[first,last)区间中的所有元素,但ƈ不释攑օ内存?
(std::vector <int >)(*pVec)
也就是创Z个时对象vector <int>Q显Ӟq个临时对象的d量是取决?pVec的实际元素个数的Q而经q?
pVec->clear();的pVect的实际元素个数是0Q因此,pVec- >swap( (std::vector <int >)(*pVec) ); 这个时对象与pVec交换后,它的d量变成了0?
Qvector中的swap()实现的是Q将first、last,end_of_storageQd量)依次交换Q?
因此Q实C*pVec没用内存的释放?
]]>- W试?http://m.shnenglu.com/Leon916/archive/2008/10/28/65277.htmlLeon916Leon916Tue, 28 Oct 2008 00:54:00 GMThttp://m.shnenglu.com/Leon916/archive/2008/10/28/65277.htmlhttp://m.shnenglu.com/Leon916/comments/65277.htmlhttp://m.shnenglu.com/Leon916/archive/2008/10/28/65277.html#Feedback0http://m.shnenglu.com/Leon916/comments/commentRss/65277.htmlhttp://m.shnenglu.com/Leon916/services/trackbacks/65277.htmlcout << sizeof*(p) << endl;
请问q个的输出?
l过调试Q我发现sizeofQ(p)的值是p类型所占的字节数?br>char输出?QdoubleQ?.
char x[0];
x是什么类型?
我在VS2005下调试,l果是错?nbsp; cannot allocate an array of constant size 0 ?br>

]]>
þù|
ɫۺϾþþþĻ|
ഺþ|
ɫۺϾþҹɫƷ|
þþƷAvӰƬ
|
þþþƷҰ|
þ99Ʒ鶹ѿ|
Ʒþþþþò|
þݺҹҹ2014|
þ99ۺϾƷ|
99þۺϾƷ|
þþþƷ|
97ȾþƵƷ99|
þþƷ|
Ʒþþþþþ|
ھƷۺϾþþ40p|
þù|
Ƶþ|
91ƷɫۺϾþ|
ĻþþƷˮ|
ݺɫþ|
ھƷžžþþƷ|
ձƷþþþӰԺձ|
ھƷþþþþҰ|
ĻƷþþþþ3Dն|
þĻƷѩ
|
ھƷžžþþƷ|
þһŷպ
|
99ŷƷþþѿ|
þþþþþþ|
þþƷ|
91Ʒ91þþþþ|
þù߳ѹۿ|
þþƷһۺ|
þþۺ|
ձһþ
|
þҹɫƷվ|
鶹AV뾫Ʒþ|
þþƷ99Ʒ|
ھƷþþþþþcoent
|
Ļþ|