锘??xml version="1.0" encoding="utf-8" standalone="yes"?> #define S(s) printf("%s\n", #s); s typedef struct _TS1{ int x, y; } TS1, *PTS1, ***PPPTS1; // TS1鏄粨鏋勪綋鐨勫悕縐幫紝PTS1鏄粨鏋勪綋鎸囬拡鐨勫悕縐?/span> // 涔熷氨鏄皢緇撴瀯浣?/span>struct _TS1 鍛藉悕涓?/span>TS1, // 灝?/span>struct _TS1 * 鍛藉悕涓?/span> PTS1 // 灝?/span>struct _TS1 *** 鍛藉悕涓?/span> PPPTS1 typedef struct { // struct鍚庨潰鐨勭粨鏋勪綋璇存槑涔熷彲浠ュ幓鎺?/span> int x, y; } TS2, *PTS2; typedef PTS1 *PPTS1; // 瀹氫箟PPTS1鏄寚鍚?/span>PTS1鐨勬寚閽?/span> typedef struct _TTS1{ typedef struct ITTS1 { int x, y; } iner; iner i; int x, y; } TTS1; //緇撴瀯浣撳唴閮ㄧ殑緇撴瀯浣撲篃涓鏍峰彲浠ュ畾涔?/span> typedef TTS1::ITTS1 ITS1; void test_struct() { // 鍩烘湰緇撴瀯浣撻噸瀹氫箟鐨勪嬌鐢?/span> TS1 ts1 = {100, 200}; PTS1 pts1 = &ts1; // 瀹屽叏絳変環(huán)浜?/span>TS1* pts1 = &ts1; PPTS1 ppts1 = &pts1; // 瀹屽叏絳変環(huán)浜?/span>TS1** ppts1 = &pts1; PPPTS1 pppts1 = &ppts1; // 瀹屽叏絳変環(huán)浜?/span> TS1*** pppts1 = &ppts1; TS2 ts2 = {99, 88}; PTS2 pts2 = &ts2; // 瀹屽叏絳変環(huán)浜?/span> TS2* pts2 = &ts2; TTS1 itts1 = {{110, 220}, 10, 20}; Its1* rits1 = &itts1.i; ITS1* &its1 = rits1; // 絳変環(huán)浜?/span> TTS1::ITTS1 *its1 = &(itts1.i); printf("ts1\t = (%d, %d)\n*pts1\t = (%d, %d)\n" "**ppts1\t = (%d, %d)\n***pppts1= (%d, %d)\n\n", ts1.x, ts1.y, pts1->x, pts1->y, (**ppts1).x, (**ppts1).y, (***pppts1).x, (***pppts1).y); printf("ts2\t = (%d, %d)\n*pts2\t = (%d, %d)\n\n", ts2.x, ts2.y, pts2->x, pts2->y); printf("itts1\t = [(%d, %d), %d, %d]\n*its1\t = (%d, %d)\n\n", itts1.i.x, itts1.i.y, itts1.x, itts1.y, its1->x, its1->y); S(pts1->x = 119); S(pts2->y = 911); S(its1->x = 999); printf("ts1\t = (%d, %d)\n*pts1\t = (%d, %d)\n" "**ppts1\t = (%d, %d)\n***pppts1= (%d, %d)\n\n", ts1.x, ts1.y, pts1->x, pts1->y, (**ppts1).x, (**ppts1).y, (***pppts1).x, (***pppts1).y); printf("ts2\t = (%d, %d)\n*pts2\t = (%d, %d)\n\n", ts2.x, ts2.y, pts2->x, pts2->y); printf("itts1\t = [(%d, %d), %d, %d]\n*its1\t = (%d, %d)\n\n", itts1.i.x, itts1.i.y, itts1.x, itts1.y, its1->x, its1->y); S((*ppts1)->y = -9999); printf("ts1\t = (%d, %d)\n**ppts1\t = (%d, %d)\n\n", ts1.x, ts1.y, (*ppts1)->x, (*ppts1)->y); S((**pppts1)->x = -12345); S((***pppts1).y = -67890); printf("ts1\t = (%d, %d)\n*pts1\t = (%d, %d)\n" "**ppts1\t = (%d, %d)\n***pppts1= (%d, %d)\n\n", ts1.x, ts1.y, pts1->x, pts1->y, (**ppts1).x, (**ppts1).y, (***pppts1).x, (***pppts1).y); } The assign() function either gives the current vector the values from start to end, or gives it num copies of val. This function will destroy the previous contents of the vector. For example, the following code uses assign() to put 10 copies of the integer 42 into a vector: The above code displays the following output: The next example shows how assign() can be used to copy one vector to another: When run, the above code displays the following output: The default vector constructor takes no arguments, creates a new instance of that vector. The second constructor is a default copy constructor that can be used to create a new vector that is a copy of the given vector c. The third constructor creates a vector with space for num objects. If val is specified, each of those objects will be given that value. For example, the following code creates a vector consisting of five copies of the integer 42: The last constructor creates a vector that is initialized to contain the elements between start and end. For example: When run, this code displays the following output: All of these constructors run in linear time except the first, which runs in constant time. The default destructor is called when the vector should be destroyed.
#include <stdlib.h>;
char *floatToString(double fZ,const int slen,const int alen);
main(int argc,char *argv[])
{
fprintf(stdout,"[%s]\n",floatToString(atof(argv[1]), atoi(argv[2]), atoi(argv[3])));
return;
}
char *floatToString(double fZ,const int slen,const int alen)
{
char tmpstr[256];
memset(tmpstr,'\0',256);
sprintf(tmpstr,"%*.*lf",slen,alen,fZ); //-- 榪欓噷鎺у埗綺懼害
return(tmpstr);
}
]]>
浠婂ぉ緇欏ぇ瀹朵粙緇嶄竴涓婥++涓父鐢ㄥ埌鐨勮鍐欏嚱鏁幫紝鏂版墜鍙互鏀惰棌涓涓嬶紝鏂逛究浠ュ悗鏌ユ壘銆?nbsp;
銆銆1.fopen()
銆銆fopen鐨勫師鍨嬫槸錛欶ILE *fopen(const char *filename,const char *mode)錛宖open瀹炵幇涓変釜鍔熻兘錛氫負(fù)浣跨敤鑰屾墦寮涓涓祦錛屾妸涓涓枃浠跺拰姝ゆ祦鐩歌繛鎺ワ紝緇欐嫻佽繑鍥炰竴涓狥ILR鎸囬拡銆?
銆銆鍙傛暟filename鎸囧悜瑕佹墦寮鐨勬枃浠跺悕錛宮ode琛ㄧず鎵撳紑鐘舵佺殑瀛楃涓詫紝鍏跺彇鍊煎涓嬶細(xì)
銆銆瀛楃涓?nbsp;鍚箟
銆銆"r" 浠ュ彧璇繪柟寮忔墦寮鏂囦歡
銆銆"w" 浠ュ彧鍐欐柟寮忔墦寮鏂囦歡
銆銆"a" 浠ヨ拷鍔犳柟寮忔墦寮鏂囦歡
銆銆"r+" 浠ヨ/鍐欐柟寮忔墦寮鏂囦歡錛屽鏃犳枃浠跺嚭閿?
銆銆"w+" 浠ヨ/鍐欐柟寮忔墦寮鏂囦歡錛屽鏃犳枃浠剁敓鎴愭柊鏂囦歡
涓涓枃浠跺彲浠ヤ互鏂囨湰妯″紡鎴栦簩榪涘埗妯″紡鎵撳紑錛岃繖涓ょ鐨勫尯鍒槸錛氬湪鏂囨湰妯″紡涓洖杞﹁褰撴垚涓涓瓧絎?#8217;\n’錛岃屼簩榪涘埗妯″紡璁や負(fù)瀹冩槸涓や釜瀛楃
0x0D,0x0A;濡傛灉鍦ㄦ枃浠朵腑璇誨埌0x1B錛屾枃鏈ā寮忎細(xì)璁や負(fù)榪欐槸鏂囦歡緇撴潫絎︼紝涔熷氨鏄簩榪涘埗妯″瀷涓嶄細(xì)瀵規(guī)枃浠惰繘琛屽鐞嗭紝鑰屾枃鏈柟寮忎細(xì)鎸変竴瀹氱殑鏂瑰紡瀵規(guī)暟鎹綔
鐩稿簲鐨勮漿鎹€?
銆銆緋葷粺榛樿鐨勬槸浠ユ枃鏈ā寮忔墦寮錛屽彲浠ヤ慨鏀瑰叏閮ㄥ彉閲廮fmode鐨勫兼潵淇敼榪欎釜璁劇疆錛屼緥濡俖fmode=O_TEXT;灝辮緗粯璁ゆ墦寮鏂瑰紡涓烘枃鏈ā寮?鑰宊fmode=O_BINARY;鍒欒緗粯璁ゆ墦寮鏂瑰紡鏄簩榪涘埗妯″紡銆?
銆銆鎴戜滑涔熷彲浠ュ湪妯″紡瀛楃涓蹭腑鎸囧畾鎵撳紑鐨勬ā寮忥紝濡?rb"琛ㄧず浠ヤ簩榪涘埗妯″紡鎵撳紑鍙鏂囦歡錛?w+t"鎴?wt+"琛ㄧず浠ユ枃鏈ā寮忔墦寮璇?鍐欐枃浠躲?
銆銆姝ゅ嚱鏁拌繑鍥炰竴涓狥ILE鎸囬拡錛屾墍浠ョ敵鏄庝竴涓狥ILE鎸囬拡鍚庝笉鐢ㄥ垵濮嬪寲錛岃屾槸鐢╢open()鏉ヨ繑鍥炰竴涓寚閽堝茍涓庝竴涓壒瀹氱殑鏂囦歡鐩歌繛錛屽鏋滄垚璐ワ紝榪斿洖NULL錛屼腑鍥借嚜瀛︾紪紼嬬綉錛?a >www.zxbc.cn 銆?
銆銆渚?
銆銆 浠ヤ笅鏄紩鐢ㄧ墖孌碉細(xì)
FILE *fp;
銆銆if(fp=fopen("123.456","wb"))
銆銆puts("鎵撳紑鏂囦歡鎴愬姛");
銆銆else
銆銆puts("鎵撳紑鏂囦歡鎴愯觸");
銆銆2.fclose()
銆銆fclose()鐨勫姛鑳藉氨鏄叧闂敤fopen()鎵撳紑鐨勬枃浠訛紝鍏跺師鍨嬫槸錛歩nt fclose(FILE *fp);濡傛灉鎴愬姛錛岃繑鍥?,澶辮觸榪斿洖EOF銆?
銆銆鍦ㄧ▼搴忕粨鏉熸椂涓瀹氳璁板緱鍏抽棴鎵撳紑鐨勬枃浠訛紝涓嶇劧鍙兘浼?xì)閫犳垚鏁版嵁涓㈠け鐨勬儏鍐碉紝鎴戜互鍓嶅氨緇忓父鐘繖鏍風(fēng)殑閿欒銆?
銆銆渚嬶細(xì)fclose(fp);
銆銆3.fputc()
銆銆鍚戞祦鍐欎竴涓瓧絎︼紝鍘熷瀷鏄痠nt fputc(int c, FILE *stream); 鎴愬姛榪斿洖榪欎釜瀛楃,澶辮觸榪斿洖EOF銆?
銆銆渚嬶細(xì)fputc(’X’,fp);
銆銆4.fgetc()
銆銆浠庢祦涓涓涓瓧絎︼紝鍘熷瀷鏄痠nt fputc(FILE *stream); 鎴愬姛榪斿洖榪欎釜瀛楃,澶辮觸榪斿洖EOF銆?
銆銆渚嬶細(xì)char ch1=fgetc(fp);
銆銆5. fseek()
姝ゅ嚱鏁頒竴鑸敤浜庝簩榪涘埗妯″紡鎵撳紑鐨勬枃浠朵腑錛屽姛鑳芥槸瀹氫綅鍒版祦涓寚瀹氱殑浣嶇疆錛屽師鍨嬫槸
int fseek(FILE *stream, long offset, int whence);濡傛灉鎴愬姛榪斿洖0錛屽弬鏁皁ffset鏄Щ鍔ㄧ殑瀛楃
鏁幫紝whence鏄Щ鍔ㄧ殑鍩哄噯錛屽彇鍊兼槸錛?
銆銆絎﹀彿甯擱噺 鍊?nbsp;鍩哄噯浣嶇疆
銆銆SEEK_SET 0 鏂囦歡寮澶?
銆銆SEEK_CUR 1 褰撳墠璇誨啓鐨勪綅緗?
銆銆SEEK_END 2 鏂囦歡灝鵑儴
銆銆渚嬶細(xì)fseek(fp,1234L,SEEK_CUR);//鎶婅鍐欎綅緗粠褰撳墠浣嶇疆鍚戝悗縐誨姩1234瀛楄妭(L鍚庣紑琛ㄧず闀挎暣鏁?
銆銆fseek(fp,0L,2);//鎶婅鍐欎綅緗Щ鍔ㄥ埌鏂囦歡灝?
銆銆6.fputs()
銆銆鍐欎竴涓瓧絎︿覆鍒版祦涓紝鍘熷瀷int fputs(const char *s, FILE *stream);
渚嬶細(xì)fputs("I Love You",fp);
銆銆7.fgets()
銆銆浠庢祦涓涓琛屾垨鎸囧畾涓瓧絎︼紝鍘熷瀷鏄痗har *fgets(char *s, int n, FILE *stream); 浠庢祦涓鍙杗-1涓瓧絎︼紝闄ら潪璇誨畬涓琛岋紝鍙傛暟s鏄潵鎺ユ敹瀛楃涓詫紝濡傛灉鎴愬姛鍒欒繑鍥瀞鐨勬寚閽堬紝鍚﹀垯榪斿洖NULL銆?
銆銆渚嬶細(xì)濡傛灉涓涓枃浠剁殑褰撳墠浣嶇疆鐨勬枃鏈涓嬶細(xì)
銆銆Love ,I Have
銆銆But ……..
銆銆濡傛灉鐢?
銆銆fgets(str1,4,file1);
銆銆鍒欐墽琛屽悗str1="Lov"錛岃鍙栦簡(jiǎn)4-1=3涓瓧絎︼紝鑰屽鏋滅敤
銆銆fgets(str1,23,file1);
銆銆鍒欐墽琛宻tr="Love ,I Have"錛岃鍙栦簡(jiǎn)涓琛?涓嶅寘鎷灝劇殑’\n’)銆?
銆銆8.fprintf()
銆銆鎸夋牸寮忚緭鍏ュ埌嫻侊紝鍏跺師鍨嬫槸int fprintf(FILE *stream, const char *format[, argument, …]);鍏剁敤娉曞拰printf()鐩稿悓錛屼笉榪囦笉鏄啓鍒版帶鍒跺彴錛岃屾槸鍐欏埌嫻佺艦浜?jiǎn)銆?
銆銆渚嬶細(xì)fprintf(fp,"%2d%s",4,"Hahaha");
銆銆9.fscanf()
銆銆浠庢祦涓寜鏍煎紡璇誨彇錛屽叾鍘熷瀷鏄痠nt fscanf(FILE *stream, const char *format[, address, …]);鍏剁敤娉曞拰scanf()鐩稿悓錛屼笉榪囦笉鏄粠鎺у埗鍙拌鍙栵紝鑰屾槸浠庢祦璇誨彇緗簡(jiǎn)銆?
銆銆渚嬶細(xì)fscanf(fp,"%d%d" ,&x,&y);
銆銆10.feof()
銆銆媯(gè)嫻嬫槸鍚﹀凡鍒版枃浠跺熬錛屾槸榪斿洖鐪燂紝鍚﹀垯榪斿洖0錛屽叾鍘熷瀷鏄痠nt feof(FILE *stream);
銆銆渚嬶細(xì)if(feof(fp))printf("宸插埌鏂囦歡灝?);
銆銆11.ferror()
銆銆鍘熷瀷鏄痠nt ferror(FILE *stream);榪斿洖嫻佹渶榪戠殑閿欒浠g爜錛屽彲鐢╟learerr()鏉ユ竻闄ゅ畠錛宑learerr()鐨勫師鍨嬫槸void clearerr(FILE *stream);
銆銆渚嬶細(xì)printf("%d",ferror(fp));
銆銆12.rewind()
銆銆鎶婂綋鍓嶇殑璇誨啓浣嶇疆鍥炲埌鏂囦歡寮濮嬶紝鍘熷瀷鏄痸oid rewind(FILE *stream);鍏跺疄鏈嚱鏁扮浉褰撲簬fseek(fp,0L,SEEK_SET);
銆銆渚嬶細(xì)rewind(fp);
銆銆12.remove()
銆銆鍒犻櫎鏂囦歡錛屽師鍨嬫槸int remove(const char *filename); 鍙傛暟灝辨槸瑕佸垹闄ょ殑鏂囦歡鍚嶏紝鎴愬姛榪斿洖0銆?
銆銆渚嬶細(xì)remove("c:\\io.sys");
銆銆13.fread()
浠庢祦涓鎸囧畾涓暟鐨勫瓧絎︼紝鍘熷瀷鏄?
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);鍙傛暟ptr鏄繚瀛樿鍙栫殑
鏁版嵁錛寁oid*鐨勬寚閽堝彲鐢ㄤ換浣曠被鍨嬬殑鎸囬拡鏉ユ浛鎹紝濡俢har*銆乮nt *絳夌瓑鏉ユ浛鎹?size鏄瘡鍧楃殑瀛楄妭鏁?n鏄鍙栫殑鍧楁暟錛屽鏋滄垚鍔燂紝榪斿洖瀹為檯璇?
鍙栫殑鍧楁暟(涓嶆槸瀛楄妭鏁?錛屾湰鍑芥暟涓鑸敤浜庝簩榪涘埗妯″紡鎵撳紑鐨勬枃浠朵腑銆?
銆銆渚嬶細(xì)
銆銆 浠ヤ笅鏄紩鐢ㄧ墖孌碉細(xì)
char x[4230];
銆銆FILE *file1=fopen("c:\\msdos.sys","r");
銆銆fread(x,200,12 ,file1);//鍏辮鍙?00*12=2400涓瓧鑺?
銆銆14.fwrite()
涓巉read瀵瑰簲錛屽悜嫻佷腑鍐欐寚瀹氱殑鏁版嵁錛屽師鍨嬫槸
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);鍙傛暟
ptr鏄鍐欏叆鐨勬暟鎹寚閽堬紝void*鐨勬寚閽堝彲鐢ㄤ換浣曠被鍨嬬殑鎸囬拡鏉ユ浛鎹紝濡俢har*銆乮nt *絳夌瓑鏉ユ浛鎹?size鏄瘡鍧楃殑瀛楄妭鏁?n鏄鍐欑殑鍧楁暟錛?
濡傛灉鎴愬姛錛岃繑鍥炲疄闄呭啓鍏ョ殑鍧楁暟(涓嶆槸瀛楄妭鏁?錛屾湰鍑芥暟涓鑸敤浜庝簩榪涘埗妯″紡鎵撳紑鐨勬枃浠朵腑銆?br> 渚嬶細(xì)
銆銆 浠ヤ笅鏄紩鐢ㄧ墖孌碉細(xì)
銆銆char x[]="I Love You";
銆銆fwire(x, 6,12,fp);//鍐欏叆6*12=72瀛楄妭
銆銆灝嗘妸"I Love"鍐欏埌嫻乫p涓?2嬈★紝鍏?2瀛楄妭
銆銆15.tmpfile()
銆銆鍏跺師鍨嬫槸FILE *tmpfile(void); 鐢熸垚涓涓復(fù)鏃舵枃浠訛紝浠?w+b"鐨勬ā寮忔墦寮錛屽茍榪斿洖榪欎釜涓存椂嫻佺殑鎸囬拡錛屽鏋滃け璐ヨ繑鍥濶ULL銆傚湪紼嬪簭緇撴潫鏃訛紝榪欎釜鏂囦歡浼?xì)琚嚜鍔ㄥ垹闄ゃ?
銆銆渚嬶細(xì)FILE *fp=tmpfile();
銆銆16.tmpnam();
銆銆鍏跺師鍨嬩負(fù)char *tmpnam(char *s); 鐢熸垚涓涓敮涓鐨勬枃浠跺悕錛屽叾瀹瀟mpfile()灝辮皟鐢ㄤ簡(jiǎn)姝ゅ嚱鏁幫紝鍙傛暟s鐢ㄦ潵淇濆瓨寰楀埌鐨勬枃浠跺悕錛屽茍榪斿洖榪欎釜鎸囬拡錛屽鏋滃け璐ワ紝榪斿洖NULL銆?
銆銆渚嬶細(xì)tmpnam(str1);
]]>
]]>
榪欎袱澶╁湪鐪嬬▼搴忕殑鏃跺?鍙戠幇寰堝鍦版柟閮界敤鍒皌ypedef,鍦ㄧ粨鏋勪綋瀹氫箟,榪樻湁涓浜涙暟緇勭瓑鍦版柟閮藉ぇ閲忕殑鐢ㄥ埌.浣嗘槸鏈変簺鍦版柟榪樹笉鏄緢娓呮,浠婂ぉ涓嬪崍,灝辨兂濂藉ソ鐮旂┒涓涓?涓婄綉鎼滀簡(jiǎn)涓涓?鏈変笉灝戣祫鏂?褰掔撼涓涓?
鏉ユ簮涓:Using typedef to Curb Miscreant Code
Typedef 澹版槑鏈夊姪浜庡垱寤哄鉤鍙版棤鍏崇被鍨嬶紝鐢氳嚦鑳介殣钘忓鏉傚拰闅句互鐞嗚В鐨勮娉曘備笉綆℃庢牱錛屼嬌鐢?typedef 鑳戒負(fù)浠g爜甯︽潵鎰忔兂涓嶅埌鐨勫ソ澶勶紝閫氳繃鏈枃浣犲彲浠ュ涔?fàn)鐢?typedef 閬垮厤緙烘瑺錛屼粠鑰屼嬌浠g爜鏇村仴澹?br>typedef 澹版槑錛岀畝縐?typedef錛屼負(fù)鐜版湁綾誨瀷鍒涘緩涓涓柊鐨勫悕瀛椼傛瘮濡備漢浠父甯鎬嬌鐢?typedef 鏉ョ紪鍐欐洿緹庤鍜屽彲璇葷殑浠g爜銆傛墍璋撶編瑙傦紝鎰忔寚 typedef 鑳介殣钘忕鎷欑殑璇硶鏋勯犱互鍙?qiáng)邈^鍙扮浉鍏崇殑鏁版嵁綾誨瀷錛屼粠鑰屽寮哄彲縐繪鎬у拰浠ュ強(qiáng)鏈潵鐨勫彲緇存姢鎬с傛湰鏂囦笅闈㈠皢绔敖鍏ㄥ姏鏉ユ彮紺?typedef 寮哄ぇ鍔熻兘浠ュ強(qiáng)濡備綍閬垮厤涓浜涘父瑙佺殑闄烽槺銆?br>濡備綍鍒涘緩騫沖彴鏃犲叧鐨勬暟鎹被鍨嬶紝闅愯棌絎ㄦ嫏涓旈毦浠ョ悊瑙g殑璇硶?
浣跨敤 typedefs 涓虹幇鏈夌被鍨嬪垱寤哄悓涔夊瓧銆?br>瀹氫箟鏄撲簬璁板繂鐨勭被鍨嬪悕
銆銆typedef 浣跨敤鏈澶氱殑鍦版柟鏄垱寤烘槗浜庤蹇嗙殑綾誨瀷鍚嶏紝鐢ㄥ畠鏉ュ綊妗g▼搴忓憳鐨勬剰鍥俱傜被鍨嬪嚭鐜板湪鎵澹版槑鐨勫彉閲忓悕瀛椾腑錛屼綅浜?''typedef'' 鍏抽敭瀛楀彸杈廣備緥濡傦細(xì)
typedef int size;
銆銆姝ゅ0鏄庡畾涔変簡(jiǎn)涓涓?int 鐨勫悓涔夊瓧錛屽悕瀛椾負(fù) size銆傛敞鎰?typedef 騫朵笉鍒涘緩鏂扮殑綾誨瀷銆傚畠浠呬粎涓虹幇鏈夌被鍨嬫坊鍔犱竴涓悓涔夊瓧銆備綘鍙互鍦ㄤ換浣曢渶瑕?int 鐨勪笂涓嬫枃涓嬌鐢?size錛?br>void measure(size * psz);
size array[4];
size len = file.getlength();
std::vector vs;
銆銆typedef 榪樺彲浠ユ帺楗扮鍚堢被鍨嬶紝濡傛寚閽堝拰鏁扮粍銆備緥濡傦紝浣犱笉鐢ㄨ薄涓嬮潰榪欐牱閲嶅瀹氫箟鏈?81 涓瓧絎﹀厓绱犵殑鏁扮粍錛?br>char line[81];
char text[81];
瀹氫箟涓涓?typedef錛屾瘡褰撹鐢ㄥ埌鐩稿悓綾誨瀷鍜屽ぇ灝忕殑鏁扮粍鏃訛紝鍙互榪欐牱錛?br>typedef char Line[81];
Line text, secondline;
getline(text);
鍚屾牱錛屽彲浠ヨ薄涓嬮潰榪欐牱闅愯棌鎸囬拡璇硶錛?br>typedef char * pstr;
int mystrcmp(pstr, pstr);
銆銆榪欓噷灝嗗甫鎴戜滑鍒拌揪絎竴涓?typedef 闄烽槺銆傛爣鍑嗗嚱鏁?strcmp()鏈変袱涓?#8216;const char *'綾誨瀷鐨勫弬鏁般傚洜姝わ紝瀹冨彲鑳戒細(xì)璇浜轟滑璞′笅闈㈣繖鏍峰0鏄?mystrcmp()錛?br>int mystrcmp(const pstr, const pstr);
銆銆榪欐槸閿欒鐨勶紝鎸夌収欏哄簭錛?#8216;const pstr'琚В閲婁負(fù)‘char * const'錛堜竴涓寚鍚?char 鐨勫父閲忔寚閽堬級(jí)錛岃屼笉鏄?#8216;const char *'錛堟寚鍚戝父閲?char 鐨勬寚閽堬級(jí)銆傝繖涓棶棰樺緢瀹規(guī)槗瑙e喅錛?br>typedef const char * cpstr;
int mystrcmp(cpstr, cpstr); // 鐜板湪鏄紜殑
璁頒綇錛氫笉綆′粈涔堟椂鍊欙紝鍙涓烘寚閽堝0鏄?typedef錛岄偅涔堥兘瑕佸湪鏈緇堢殑 typedef 鍚嶇О涓姞涓涓?const錛屼互浣垮緱璇ユ寚閽堟湰韜槸甯擱噺錛岃屼笉鏄璞°?br>浠g爜綆鍖?br>銆銆涓婇潰璁ㄨ鐨?typedef 琛屼負(fù)鏈夌偣鍍?#define 瀹忥紝鐢ㄥ叾瀹為檯綾誨瀷鏇夸唬鍚屼箟瀛椼備笉鍚岀偣鏄?typedef 鍦ㄧ紪璇戞椂琚В閲婏紝鍥犳璁╃紪璇戝櫒鏉ュ簲浠樿秴瓚婇澶勭悊鍣ㄨ兘鍔涚殑鏂囨湰鏇挎崲銆備緥濡傦細(xì)
typedef int (*PF) (const char *, const char *);
銆銆榪欎釜澹版槑寮曞叆浜?PF 綾誨瀷浣滀負(fù)鍑芥暟鎸囬拡鐨勫悓涔夊瓧錛岃鍑芥暟鏈変袱涓?const char * 綾誨瀷鐨勫弬鏁頒互鍙?qiáng)涓涓?int 綾誨瀷鐨勮繑鍥炲箋傚鏋滆浣跨敤涓嬪垪褰㈠紡鐨勫嚱鏁板0鏄庯紝閭d箞涓婅堪榪欎釜 typedef 鏄笉鍙垨緙虹殑錛?br>PF Register(PF pf);
銆銆Register() 鐨勫弬鏁版槸涓涓?PF 綾誨瀷鐨勫洖璋冨嚱鏁幫紝榪斿洖鏌愪釜鍑芥暟鐨勫湴鍧錛屽叾緗插悕涓庡厛鍓嶆敞鍐岀殑鍚嶅瓧鐩稿悓銆傚仛涓嬈℃繁鍛煎惛銆備笅闈㈡垜灞曠ず涓涓嬪鏋滀笉鐢?typedef錛屾垜浠槸濡備綍瀹炵幇榪欎釜澹版槑鐨勶細(xì)
int (*Register (int (*pf)(const char *, const char *)))
(const char *, const char *);
銆銆寰堝皯鏈夌▼搴忓憳鐞嗚В瀹冩槸浠涔堟剰鎬濓紝鏇翠笉鐢ㄨ榪欑璐硅В鐨勪唬鐮佹墍甯︽潵鐨勫嚭閿欓闄╀簡(jiǎn)銆傛樉鐒?dòng)灱寴q欓噷浣跨敤 typedef 涓嶆槸涓縐嶇壒鏉冿紝鑰屾槸涓縐嶅繀闇銆傛寔鎬鐤戞佸害鐨勪漢鍙兘浼?xì)闂Q?OK錛屾湁浜鴻繕浼?xì)鍐櫂q欐牱鐨勪唬鐮佸悧錛?錛屽揩閫熸祻瑙堜竴涓嬫彮紺?signal()鍑芥暟鐨勫ご鏂囦歡 錛屼竴涓湁鍚屾牱鎺ュ彛鐨勫嚱鏁般?br>typedef 鍜屽瓨鍌ㄧ被鍏抽敭瀛楋紙storage class specifier錛?br>銆銆榪欑璇存硶鏄笉鏄湁鐐逛護(hù)浜烘儕璁訛紝typedef 灝卞儚 auto錛宔xtern錛宮utable錛宻tatic錛屽拰 register 涓鏍鳳紝鏄竴涓瓨鍌ㄧ被鍏抽敭瀛椼傝繖騫舵槸璇?typedef 浼?xì)鐪熸濯?jiǎng)鍝嶅璞$殑瀛樺偍鐗規(guī)э紱瀹冨彧鏄鍦ㄨ鍙ユ瀯鎴愪笂錛宼ypedef 澹版槑鐪嬭搗鏉ヨ薄 static錛宔xtern 絳夌被鍨嬬殑鍙橀噺澹版槑銆備笅闈㈠皢甯﹀埌絎簩涓櫡闃憋細(xì)
typedef register int FAST_COUNTER; // 閿欒
銆銆緙栬瘧閫氫笉榪囥傞棶棰樺嚭鍦ㄤ綘涓嶈兘鍦ㄥ0鏄庝腑鏈夊涓瓨鍌ㄧ被鍏抽敭瀛椼傚洜涓虹鍙?typedef 宸茬粡鍗犳嵁浜?jiǎn)瀛樺偍绫诲叧閿瓧鐨勪綅缃Q屽湪 typedef 澹版槑涓笉鑳界敤 register錛堟垨浠諱綍鍏跺畠瀛樺偍綾誨叧閿瓧錛夈?br>淇?jī)杩涜法邈^鍙板紑鍙?br>銆銆typedef 鏈夊彟澶栦竴涓噸瑕佺殑鐢ㄩ旓紝閭e氨鏄畾涔夋満鍣ㄦ棤鍏崇殑綾誨瀷錛屼緥濡傦紝浣犲彲浠ュ畾涔変竴涓彨 REAL 鐨勬誕鐐圭被鍨嬶紝鍦ㄧ洰鏍囨満鍣ㄤ笂瀹冨彲浠鑾峰緱鏈楂樼殑綺懼害錛?br>typedef long double REAL;
鍦ㄤ笉鏀寔 long double 鐨勬満鍣ㄤ笂錛岃 typedef 鐪嬭搗鏉ヤ細(xì)鏄笅闈㈣繖鏍鳳細(xì)
typedef double REAL;
騫朵笖錛屽湪榪?double 閮戒笉鏀寔鐨勬満鍣ㄤ笂錛岃 typedef 鐪嬭搗鏉ヤ細(xì)鏄繖鏍鳳細(xì)銆?br>typedef float REAL;
銆 銆浣犱笉鐢ㄥ婧愪唬鐮佸仛浠諱綍淇敼錛屼究鍙互鍦ㄦ瘡涓縐嶅鉤鍙頒笂緙栬瘧榪欎釜浣跨敤 REAL 綾誨瀷鐨勫簲鐢ㄧ▼搴忋傚敮涓瑕佹敼鐨勬槸 typedef 鏈韓銆傚湪澶у鏁版儏鍐典笅錛岀敋鑷寵繖涓井灝忕殑鍙樺姩瀹屽叏閮藉彲浠ラ氳繃濂囧鐨勬潯浠剁紪璇戞潵鑷姩瀹炵幇銆備笉鏄悧? 鏍囧噯搴撳箍娉涘湴浣跨敤 typedef 鏉ュ垱寤鴻繖鏍風(fēng)殑騫沖彴鏃犲叧綾誨瀷錛歴ize_t錛宲trdiff 鍜?fpos_t 灝辨槸鍏朵腑鐨勪緥瀛愩傛澶栵紝璞?std::string 鍜?std::ofstream 榪欐牱鐨?typedef 榪橀殣钘忎簡(jiǎn)闀塊暱鐨勶紝闅句互鐞嗚В鐨勬ā鏉跨壒鍖栬娉曪紝渚嬪錛歜asic_string錛宎llocator> 鍜?basic_ofstream>銆?br>浣滆呯畝浠?br>銆銆Danny Kalev 鏄竴鍚嶉氳繃璁よ瘉鐨勭郴緇熷垎鏋愬笀錛屼笓鏀?C++ 鍜屽艦寮忚璦鐞嗚鐨勮蔣浠跺伐紼嬪笀銆?997 騫村埌 2000 騫存湡闂達(dá)紝浠栨槸 C++ 鏍囧噯濮斿憳浼?xì)鎴愬憳銆傛渶榪戜粬浠ヤ紭寮傛垚緇╁畬鎴愪簡(jiǎn)浠栧湪鏅氳璦瀛︾爺絀舵柟闈㈢殑紜曞+璁烘枃銆備笟浣欐椂闂翠粬鍠滄鍚彜鍏擱煶涔愶紝闃呰緇村鍒╀簹鏃舵湡鐨勬枃瀛︿綔鍝侊紝鐮旂┒ Hittite銆丅asque 鍜?Irish Gaelic 榪欐牱鐨勮嚜鐒惰璦銆傚叾瀹冨叴瓚e寘鎷冨彜鍜屽湴鐞嗐侱anny 鏃跺父鍒頒竴浜?C++ 璁哄潧騫跺畾鏈熶負(fù)涓嶅悓鐨?C++ 緗戠珯鍜屾潅蹇楁挵鍐欐枃绔犮備粬榪樺湪鏁欒偛鏈烘瀯璁叉巿紼嬪簭璁捐璇█鍜屽簲鐢ㄨ璦璇劇▼銆?br>鏉ユ簮浜岋細(xì)(http://www.ccfans.net/bbs/dispbbs.asp?boardid=30&;id=4455)
C璇█涓璽ypedef鐢ㄦ硶
1. 鍩烘湰瑙i噴
銆銆typedef涓篊璇█鐨勫叧閿瓧錛屼綔鐢ㄦ槸涓轟竴縐嶆暟鎹被鍨嬪畾涔変竴涓柊鍚嶅瓧銆傝繖閲岀殑鏁版嵁綾誨瀷鍖呮嫭鍐呴儴鏁版嵁綾誨瀷錛坕nt,char絳夛級(jí)鍜岃嚜瀹氫箟鐨勬暟鎹被鍨嬶紙struct絳夛級(jí)銆?br>銆銆鍦ㄧ紪紼嬩腑浣跨敤typedef鐩殑涓鑸湁涓や釜錛屼竴涓槸緇欏彉閲忎竴涓槗璁頒笖鎰忎箟鏄庣‘鐨勬柊鍚嶅瓧錛屽彟涓涓槸綆鍖栦竴浜涙瘮杈冨鏉傜殑綾誨瀷澹版槑銆?br>銆銆鑷充簬typedef鏈変粈涔堝井濡欎箣澶勶紝璇蜂綘鎺ョ潃鐪嬩笅闈㈠鍑犱釜闂鐨勫叿浣撻槓榪般?br>銆2. typedef & 緇撴瀯鐨勯棶棰?br>銆銆褰撶敤涓嬮潰鐨勪唬鐮佸畾涔変竴涓粨鏋勬椂錛岀紪璇戝櫒鎶ヤ簡(jiǎn)涓涓敊璇紝涓轟粈涔堝憿錛熻帿闈濩璇█涓嶅厑璁稿湪緇撴瀯涓寘鍚寚鍚戝畠鑷繁鐨勬寚閽堝悧錛熻浣犲厛鐚滄兂涓涓嬶紝鐒跺悗鐪嬩笅鏂囪鏄庯細(xì)
typedef struct tagNode
{
銆char *pItem;
銆pNode pNext;
} *pNode;
銆銆絳旀涓庡垎鏋愶細(xì)
銆銆1銆乼ypedef鐨勬渶綆鍗曚嬌鐢?br>typedef long byte_4;
銆銆緇欏凡鐭ユ暟鎹被鍨媗ong璧蜂釜鏂板悕瀛楋紝鍙玝yte_4銆?br>銆銆2銆?typedef涓庣粨鏋勭粨鍚堜嬌鐢?br>typedef struct tagMyStruct
{
銆int iNum;
銆long lLength;
} MyStruct;
銆銆榪欒鍙ュ疄闄呬笂瀹屾垚涓や釜鎿嶄綔錛?br>銆銆1) 瀹氫箟涓涓柊鐨勭粨鏋勭被鍨?br>struct tagMyStruct
{
銆int iNum;
銆long lLength;
};
銆銆鍒嗘瀽錛歵agMyStruct縐頒負(fù)“tag”錛屽嵆“鏍囩”錛屽疄闄呬笂鏄竴涓復(fù)鏃跺悕瀛楋紝struct 鍏抽敭瀛楀拰tagMyStruct涓璧鳳紝鏋勬垚浜?jiǎn)杩欎釜缁撴瀯绫诲瀷锛屼笉璁烘槸鍚︽湁typedef錛岃繖涓粨鏋勯兘瀛樺湪銆?br>銆銆鎴戜滑鍙互鐢╯truct tagMyStruct varName鏉ュ畾涔夊彉閲忥紝浣嗚娉ㄦ剰錛屼嬌鐢╰agMyStruct varName鏉ュ畾涔夊彉閲忔槸涓嶅鐨勶紝鍥犱負(fù)struct 鍜宼agMyStruct鍚堝湪涓璧鋒墠鑳借〃紺轟竴涓粨鏋勭被鍨嬨?br>銆銆2) typedef涓鴻繖涓柊鐨勭粨鏋勮搗浜?jiǎn)涓涓悕瀛楋紝鍙玀yStruct銆?br>typedef struct tagMyStruct MyStruct;
銆銆鍥犳錛孧yStruct瀹為檯涓婄浉褰撲簬struct tagMyStruct錛屾垜浠彲浠ヤ嬌鐢∕yStruct varName鏉ュ畾涔夊彉閲忋?br>銆銆絳旀涓庡垎鏋?br>銆銆C璇█褰撶劧鍏佽鍦ㄧ粨鏋勪腑鍖呭惈鎸囧悜瀹冭嚜宸辯殑鎸囬拡錛屾垜浠彲浠ュ湪寤虹珛閾捐〃絳夋暟鎹粨鏋勭殑瀹炵幇涓婄湅鍒版棤鏁拌繖鏍風(fēng)殑渚嬪瓙錛屼笂榪頒唬鐮佺殑鏍規(guī)湰闂鍦ㄤ簬typedef鐨勫簲鐢ㄣ?br>銆銆鏍規(guī)嵁鎴戜滑涓婇潰鐨勯槓榪板彲浠ョ煡閬擄細(xì)鏂扮粨鏋勫緩绔嬬殑榪囩▼涓亣鍒頒簡(jiǎn)pNext鍩熺殑澹版槑錛岀被鍨嬫槸pNode錛岃鐭ラ亾pNode琛ㄧず鐨勬槸綾誨瀷鐨勬柊鍚嶅瓧錛岄偅涔堝湪綾誨瀷鏈韓榪樻病鏈夊緩绔嬪畬鎴愮殑鏃跺欙紝榪欎釜綾誨瀷鐨勬柊鍚嶅瓧涔熻繕涓嶅瓨鍦紝涔熷氨鏄榪欎釜鏃跺欑紪璇戝櫒鏍規(guī)湰涓嶈璇唒Node銆?br>銆銆瑙e喅榪欎釜闂鐨勬柟娉曟湁澶氱錛?br>銆銆1)銆?br>typedef struct tagNode
{
銆char *pItem;
銆struct tagNode *pNext;
} *pNode;
銆銆2)銆?br>typedef struct tagNode *pNode;
struct tagNode
{
銆char *pItem;
銆pNode pNext;
};
銆銆娉ㄦ剰錛氬湪榪欎釜渚嬪瓙涓紝浣犵敤typedef緇欎竴涓繕鏈畬鍏ㄥ0鏄庣殑綾誨瀷璧鋒柊鍚嶅瓧銆侰璇█緙栬瘧鍣ㄦ敮鎸佽繖縐嶅仛娉曘?br>銆銆3)銆佽鑼冨仛娉曪細(xì)
struct tagNode
{
銆char *pItem;
銆struct tagNode *pNext;
};
typedef struct tagNode *pNode;
銆3. typedef & #define鐨勯棶棰?br>銆銆鏈変笅闈袱縐嶅畾涔塸Str鏁版嵁綾誨瀷鐨勬柟娉曪紝涓よ呮湁浠涔堜笉鍚岋紵鍝竴縐嶆洿濂戒竴鐐癸紵
typedef char *pStr;
#define pStr char *;
銆銆絳旀涓庡垎鏋愶細(xì)
銆銆閫氬父璁詫紝typedef瑕佹瘮#define瑕佸ソ錛岀壒鍒槸鍦ㄦ湁鎸囬拡鐨勫満鍚堛傝鐪嬩緥瀛愶細(xì)
typedef char *pStr1;
#define pStr2 char *;
pStr1 s1, s2;
pStr2 s3, s4;
銆銆鍦ㄤ笂榪扮殑鍙橀噺瀹氫箟涓紝s1銆乻2銆乻3閮借瀹氫箟涓篶har *錛岃宻4鍒欏畾涔夋垚浜?jiǎn)char錛屼笉鏄垜浠墍棰勬湡鐨勬寚閽堝彉閲忥紝鏍規(guī)湰鍘熷洜灝卞湪浜?define鍙槸綆鍗曠殑瀛楃涓叉浛鎹㈣宼ypedef鍒欐槸涓轟竴涓被鍨嬭搗鏂板悕瀛椼?br>銆銆#define鐢ㄦ硶渚嬪瓙錛?br>#define f(x) x*x
main( )
{
銆int a=6錛宐=2錛宑錛?br>銆c=f(a) / f(b)錛?br>銆printf("%d \\n"錛宑)錛?br>}
銆銆浠ヤ笅紼嬪簭鐨勮緭鍑虹粨鏋滄槸: 36銆?br>銆銆鍥犱負(fù)濡傛鍘熷洜錛屽湪璁稿C璇█緙栫▼瑙勮寖涓彁鍒頒嬌鐢?define瀹氫箟鏃訛紝濡傛灉瀹氫箟涓寘鍚〃杈懼紡錛屽繀欏諱嬌鐢ㄦ嫭鍙鳳紝鍒欎笂榪板畾涔夊簲璇ュ涓嬪畾涔夋墠瀵癸細(xì)
#define f(x) (x*x)
銆銆褰撶劧錛屽鏋滀綘浣跨敤typedef灝辨病鏈夎繖鏍風(fēng)殑闂銆?br>銆銆4. typedef & #define鐨勫彟涓渚?br>銆銆涓嬮潰鐨勪唬鐮佷腑緙栬瘧鍣ㄤ細(xì)鎶ヤ竴涓敊璇紝浣犵煡閬撴槸鍝釜璇彞閿欎簡(jiǎn)鍚楋紵
typedef char * pStr;
char string[4] = "abc";
const char *p1 = string;
const pStr p2 = string;
p1++;
p2++;
銆銆絳旀涓庡垎鏋愶細(xì)
銆銆鏄痯2++鍑洪敊浜?jiǎn)銆傝繖涓棶棰樺啀涓嬈℃彁閱掓垜浠細(xì)typedef鍜?define涓嶅悓錛屽畠涓嶆槸綆鍗曠殑鏂囨湰鏇挎崲銆備笂榪頒唬鐮佷腑const pStr p2騫朵笉絳変簬const char * p2銆俢onst pStr p2鍜宑onst long x鏈川涓婃病鏈夊尯鍒紝閮芥槸瀵瑰彉閲忚繘琛屽彧璇婚檺鍒訛紝鍙笉榪囨澶勫彉閲弍2鐨勬暟鎹被鍨嬫槸鎴戜滑鑷繁瀹氫箟鐨勮屼笉鏄郴緇熷浐鏈夌被鍨嬭屽凡銆傚洜姝わ紝const pStr p2鐨勫惈涔夋槸錛氶檺瀹氭暟鎹被鍨嬩負(fù)char *鐨勫彉閲弍2涓哄彧璇伙紝鍥犳p2++閿欒銆?br>銆銆#define涓巘ypedef寮曠敵璋?br>銆銆1) #define瀹忓畾涔夋湁涓涓壒鍒殑闀垮錛氬彲浠ヤ嬌鐢?#ifdef ,#ifndef絳夋潵榪涜閫昏緫鍒ゆ柇錛岃繕鍙互浣跨敤#undef鏉ュ彇娑堝畾涔夈?br>銆銆2) typedef涔熸湁涓涓壒鍒殑闀垮錛氬畠絎﹀悎鑼冨洿瑙勫垯錛屼嬌鐢╰ypedef瀹氫箟鐨勫彉閲忕被鍨嬪叾浣滅敤鑼冨洿闄愬埗鍦ㄦ墍瀹氫箟鐨勫嚱鏁版垨鑰呮枃浠跺唴錛堝彇鍐充簬姝ゅ彉閲忓畾涔夌殑浣嶇疆錛夛紝鑰屽畯瀹氫箟鍒欐病鏈夎繖縐嶇壒鎬с?br>銆銆5. typedef & 澶嶆潅鐨勫彉閲忓0鏄?br>銆銆鍦ㄧ紪紼嬪疄璺典腑錛屽挨鍏舵槸鐪嬪埆浜轟唬鐮佺殑鏃跺欙紝甯稿父浼?xì)閬囧埌姣旇緝澶嶆潅鐨勫彉閲忓0鏄?浣跨敤typedef浣滅畝鍖栬嚜鏈夊叾浠峰鹼紝姣斿錛?br>銆銆涓嬮潰鏄笁涓彉閲忕殑澹版槑錛屾垜鎯充嬌鐢╰ypdef鍒嗗埆緇欏畠浠畾涔変竴涓埆鍚嶏紝璇烽棶璇ュ浣曞仛錛?br>>1錛歩nt *(*a[5])(int, char*);
>2錛歷oid (*b[10]) (void (*)());
>3. doube(*)() (*pa)[9];
銆銆絳旀涓庡垎鏋愶細(xì)
銆銆瀵瑰鏉傚彉閲忓緩绔嬩竴涓被鍨嬪埆鍚嶇殑鏂規(guī)硶寰堢畝鍗曪紝浣犲彧瑕佸湪浼犵粺鐨勫彉閲忓0鏄庤〃杈懼紡閲岀敤綾誨瀷鍚嶆浛浠e彉閲忓悕錛岀劧鍚庢妸鍏抽敭瀛梩ypedef鍔犲湪璇ヨ鍙ョ殑寮澶村氨琛屼簡(jiǎn)銆?br>>1錛歩nt *(*a[5])(int, char*);
//pFun鏄垜浠緩鐨勪竴涓被鍨嬪埆鍚?br>typedef int *(*pFun)(int, char*);
//浣跨敤瀹氫箟鐨勬柊綾誨瀷鏉ュ0鏄庡璞★紝絳変環(huán)浜巌nt* (*a[5])(int, char*);
pFun a[5];
>2錛歷oid (*b[10]) (void (*)());
//棣栧厛涓轟笂闈㈣〃杈懼紡钃濊壊閮ㄥ垎澹版槑涓涓柊綾誨瀷
typedef void (*pFunParam)();
//鏁翠綋澹版槑涓涓柊綾誨瀷
typedef void (*pFun)(pFunParam);
//浣跨敤瀹氫箟鐨勬柊綾誨瀷鏉ュ0鏄庡璞★紝絳変環(huán)浜巚oid (*b[10]) (void (*)());
pFun b[10];
>3. doube(*)() (*pa)[9];
//棣栧厛涓轟笂闈㈣〃杈懼紡钃濊壊閮ㄥ垎澹版槑涓涓柊綾誨瀷
typedef double(*pFun)();
//鏁翠綋澹版槑涓涓柊綾誨瀷
typedef pFun (*pFunParam)[9];
//浣跨敤瀹氫箟鐨勬柊綾誨瀷鏉ュ0鏄庡璞★紝絳変環(huán)浜巇oube(*)() (*pa)[9];
pFunParam pa;
]]> #include <vector>
void assign( size_type num, const TYPE& val );
void assign( input_iterator start, input_iterator end );
vector<int> v;
v.assign( 10, 42 );
for( int i = 0; i < v.size(); i++ ) {
cout << v[i] << " ";
}
cout << endl; 42 42 42 42 42 42 42 42 42 42
vector<int> v1;
for( int i = 0; i < 10; i++ ) {
v1.push_back( i );
}
vector<int> v2;
v2.assign( v1.begin(), v1.end() );
for( int i = 0; i < v2.size(); i++ ) {
cout << v2[i] << " ";
}
cout << endl; 0 1 2 3 4 5 6 7 8 9
#include <vector>
vector();
vector( const vector& c );
vector( size_type num, const TYPE& val = TYPE() );
vector( input_iterator start, input_iterator end );
~vector();
vector<int> v1( 5, 42 );
// create a vector of random integers
cout << "original vector: ";
vector<int> v;
for( int i = 0; i < 10; i++ ) {
int num = (int) rand() % 10;
cout << num << " ";
v.push_back( num );
}
cout << endl;
// find the first element of v that is even
vector<int>::iterator iter1 = v.begin();
while( iter1 != v.end() && *iter1 % 2 != 0 ) {
iter1++;
}
// find the last element of v that is even
vector<int>::iterator iter2 = v.end();
do {
iter2--;
} while( iter2 != v.begin() && *iter2 % 2 != 0 );
// only proceed if we find both numbers
if( iter1 != v.end() && iter2 != v.begin() ) {
cout << "first even number: " << *iter1 << ", last even number: " << *iter2 << endl;
cout << "new vector: ";
vector<int> v2( iter1, iter2 );
for( int i = 0; i < v2.size(); i++ ) {
cout << v2[i] << " ";
}
cout << endl;
}original vector: 1 9 7 9 2 7 2 1 9 8
first even number: 2, last even number: 8
new vector: 2 7 2 1 9
]]>
]]>