锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
java涓病鏈夋寚閽堬紝浣嗘槸鏁扮粍鍚嶏紝瀵硅薄鍚嶉兘鏄叾寮曠敤錛?br>鎸囬拡榪樻湁甯擱噺鎸囬拡錛屾瘮濡傛暟緇勫悕
(2)new鐨勫尯鍒?br>java涓殑new榪斿洖瀵硅薄鐨勫簲鐢?br>c++涓殑new榪斿洖鍏舵寚閽堬紝
濡傛灉c++涓?br>SparseMatrix s=SparseMatrix(4,4,6,arrays);
濡傛灉java涓?br>SparseMatrix s=new SparseMatrix(4,4,6,arrays);
涓銆佷竴涓粡榪囩紪璇戠殑C/C++鐨勭▼搴忓崰鐢ㄧ殑鍐呭瓨鍒嗘垚浠ヤ笅鍑犱釜閮ㄥ垎錛?br>1銆佹爤鍖猴紙stack錛夛細鐢辯紪璇戝櫒鑷姩鍒嗛厤鍜岄噴鏀?nbsp;錛屽瓨鏀懼嚱鏁扮殑鍙傛暟鍊箋佸眬閮ㄥ彉閲忕殑鍊肩瓑錛岀敋鑷沖嚱鏁扮殑璋冪敤榪囩▼閮芥槸鐢ㄦ爤鏉ュ畬鎴愩傚叾鎿嶄綔鏂瑰紡綾諱技浜庢暟鎹粨鏋勪腑鐨勬爤銆?br>2銆佸爢鍖猴紙heap錛?nbsp;錛氫竴鑸敱紼嬪簭鍛樻墜鍔ㄧ敵璇蜂互鍙婇噴鏀撅紝 鑻ョ▼搴忓憳涓嶉噴鏀撅紝紼嬪簭緇撴潫鏃跺彲鑳界敱OS鍥炴敹 銆傛敞鎰忓畠涓庢暟鎹粨鏋勪腑鐨勫爢鏄袱鍥炰簨錛屽垎閰嶆柟寮忕被浼間簬閾捐〃銆?br>3銆佸叏灞鍖猴紙闈欐佸尯錛夛紙static錛夛細鍏ㄥ眬鍙橀噺鍜岄潤鎬佸彉閲忕殑瀛樺偍鏄斁鍦ㄤ竴鍧楃殑錛屽垵濮嬪寲鐨勫叏灞鍙橀噺鍜岄潤鎬佸彉閲忓湪涓鍧楀尯鍩燂紝 鏈垵濮嬪寲鐨勫叏灞鍙橀噺鍜屾湭鍒濆鍖栫殑闈欐佸彉閲忓湪鐩擱偦鐨勫彟涓鍧楀尯鍩熴傜▼搴忕粨鏉熷悗鐢辯郴緇熼噴鏀劇┖闂淬?nbsp;
4銆佹枃瀛楀父閲忓尯錛氬父閲忓瓧絎︿覆灝辨槸鏀懼湪榪欓噷鐨勩?nbsp;紼嬪簭緇撴潫鍚庣敱緋葷粺閲婃斁絀洪棿銆?br>5銆佺▼搴忎唬鐮佸尯錛氬瓨鏀懼嚱鏁頒綋鐨勪簩榪涘埗浠g爜銆?/p>
涓嬮潰鐨勪緥瀛愬彲浠ュ畬鍏ㄥ睍紺轟笉鍚岀殑鍙橀噺鎵鍗犵殑鍐呭瓨鍖哄煙錛?br>
//main.cpp
int a = 0; 鍏ㄥ眬鍒濆鍖栧尯
char *p1; 鍏ㄥ眬鏈垵濮嬪寲鍖?br>main()
{
int b; //鏍堜腑
char s[] = “abc”; //鏍堜腑
char *p2; //鏍堜腑
char *p3 = “123456″; //123456\0鍦ㄥ父閲忓尯錛宲3鍦ㄦ爤涓?br>static int c =0錛?//鍏ㄥ眬錛堥潤鎬侊級鍒濆鍖栧尯
//浠ヤ笅鍒嗛厤寰楀埌鐨?0鍜?0瀛楄妭鐨勫尯鍩熷氨鍦ㄥ爢鍖?br>p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
strcpy(p1, “123456″); //123456\0鏀懼湪甯擱噺鍖猴紝緙栬瘧鍣ㄥ彲鑳戒細灝嗗畠涓巔3鎵鎸囧悜鐨?#8221;123456″浼樺寲鎴愪竴涓湴鏂廣?br>}
浜屻佹爤錛坰tack錛夊拰鍫嗭紙heap錛夊叿浣撶殑鍖哄埆銆?br>1銆佸湪鐢寵鏂瑰紡涓?br>鏍堬紙stack錛? 鐜板湪寰堝浜洪兘縐頒箣涓哄爢鏍堬紝榪欎釜鏃跺欏疄闄呬笂榪樻槸鎸囩殑鏍堛傚畠鐢辯紪璇戝櫒鑷姩綆$悊錛屾棤闇鎴戜滑鎵嬪伐鎺у埗銆?渚嬪錛屽0鏄庡嚱鏁頒腑鐨勪竴涓眬閮ㄥ彉閲?int b 緋葷粺鑷姩鍦ㄦ爤涓負b寮杈熺┖闂達紱鍦ㄨ皟鐢ㄤ竴涓嚱鏁版椂錛岀郴緇熻嚜鍔ㄧ殑緇欏嚱鏁扮殑褰㈠弬鍙橀噺鍦ㄦ爤涓紑杈熺┖闂淬?br>鍫嗭紙heap錛? 鐢寵鍜岄噴鏀劇敱紼嬪簭鍛樻帶鍒訛紝騫舵寚鏄庡ぇ灝忋傚鏄撲駭鐢焟emory leak銆?br>鍦–涓嬌鐢╩alloc鍑芥暟銆?br>濡傦細p1 = (char *)malloc(10);
鍦–++涓敤new榪愮畻絎︺?br>濡傦細p2 = (char *)malloc(10);
浣嗘槸娉ㄦ剰p1鏈韓鍦ㄥ叏灞鍖猴紝鑰宲2鏈韓鏄湪鏍堜腑鐨勶紝鍙槸瀹冧滑鎸囧悜鐨勭┖闂存槸鍦ㄥ爢涓?/p>
2銆佺敵璇峰悗緋葷粺鐨勫搷搴斾笂
鏍堬紙stack錛?鍙鏍堢殑鍓╀綑絀洪棿澶т簬鎵鐢寵絀洪棿錛岀郴緇熷皢涓虹▼搴忔彁渚涘唴瀛橈紝鍚﹀垯灝嗘姤寮傚父鎻愮ず鏍堟孩鍑恒?br>鍫嗭紙heap錛? 棣栧厛搴旇鐭ラ亾鎿嶄綔緋葷粺鏈変竴涓褰曠┖闂插唴瀛樺湴鍧鐨勯摼琛紝褰撶郴緇熸敹鍒扮▼搴忕殑鐢寵鏃訛紝 浼氶亶鍘嗚閾捐〃錛屽鎵劇涓涓┖闂村ぇ浜庢墍鐢寵絀洪棿鐨勫爢緇撶偣錛岀劧鍚庡皢璇ョ粨鐐逛粠絀洪棽緇撶偣閾捐〃涓垹闄わ紝騫跺皢璇ョ粨鐐圭殑絀洪棿鍒嗛厤緇欑▼搴忋傚彟澶栵紝瀵逛簬澶у鏁扮郴緇燂紝浼氬湪榪欏潡鍐呭瓨絀洪棿涓殑棣栧湴鍧澶勮褰曟湰嬈″垎閰嶇殑澶у皬錛岃繖鏍鳳紝浠g爜涓殑delete鎴杅ree璇彞鎵嶈兘姝g‘鐨勯噴鏀炬湰鍐呭瓨絀洪棿銆傚彟澶栵紝鐢變簬鎵懼埌鐨勫爢緇撶偣鐨勫ぇ灝忎笉涓瀹氭濂界瓑浜庣敵璇風殑澶у皬錛岀郴緇熶細鑷姩鐨勫皢澶氫綑鐨勯偅閮ㄥ垎閲嶆柊鏀懼叆絀洪棽閾捐〃涓?/p>
3銆佺敵璇峰ぇ灝忕殑闄愬埗
鏍堬紙stack錛?鍦╓indows涓?鏍堟槸鍚戜綆鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄竴鍧楄繛緇殑鍐呭瓨鐨勫尯鍩熴傝繖鍙ヨ瘽鐨勬剰鎬濇槸鏍堥《鐨勫湴鍧鍜屾爤鐨勬渶澶у閲忔槸緋葷粺棰勫厛瑙勫畾濂界殑錛屽湪WINDOWS涓嬶紝鏍堢殑澶у皬鏄?M錛堜篃鏈夌殑璇存槸1M錛屾諱箣鏄竴涓紪璇戞椂灝辯‘瀹氱殑甯告暟錛夛紝濡傛灉鐢寵鐨勭┖闂磋秴榪囨爤鐨勫墿浣欑┖闂存椂錛屽皢鎻愮ずoverflow銆傚洜姝わ紝鑳戒粠鏍堣幏寰楃殑絀洪棿杈冨皬銆?渚嬪錛屽湪VC6涓嬮潰錛岄粯璁ょ殑鏍堢┖闂村ぇ灝忔槸1M錛堝ソ鍍忔槸錛岃涓嶆竻妤氫簡錛夈傚綋鐒訛紝鎴戜滑鍙互淇敼錛氭墦寮宸ョ▼錛屼緷嬈℃搷浣滆彍鍗曞涓嬶細Project->Setting->Link錛屽湪Category 涓変腑Output錛岀劧鍚庡湪Reserve涓瀹氬爢鏍堢殑鏈澶у煎拰commit銆?br>娉ㄦ剰錛歳eserve鏈灝忓間負4Byte錛沜ommit鏄繚鐣欏湪铏氭嫙鍐呭瓨鐨勯〉鏂囦歡閲岄潰錛屽畠璁劇疆鐨勮緝澶т細浣挎爤寮杈熻緝澶х殑鍊鹼紝鍙兘澧炲姞鍐呭瓨鐨勫紑閿鍜屽惎鍔ㄦ椂闂淬?/p>
鍫嗭紙heap錛? 鍫嗘槸鍚戦珮鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄笉榪炵畫鐨勫唴瀛樺尯鍩燂紙絀洪棽閮ㄥ垎鐢ㄩ摼琛ㄤ覆鑱旇搗鏉ワ級銆傛鏄敱浜庣郴緇熸槸鐢ㄩ摼琛ㄦ潵瀛樺偍絀洪棽鍐呭瓨錛岃嚜鐒舵槸涓嶈繛緇殑錛岃岄摼琛ㄧ殑閬嶅巻鏂瑰悜鏄敱浣庡湴鍧鍚戦珮鍦板潃銆備竴鑸潵璁插湪32浣嶇郴緇熶笅錛屽爢鍐呭瓨鍙互杈懼埌4G鐨勭┖闂達紝浠庤繖涓搴︽潵鐪嬪爢鍐呭瓨鍑犱箮鏄病鏈変粈涔堥檺鍒剁殑銆傜敱姝ゅ彲瑙侊紝鍫嗚幏寰楃殑絀洪棿姣旇緝鐏墊椿錛屼篃姣旇緝澶с?/p>
4銆佸垎閰嶇┖闂寸殑鏁堢巼涓?br>鏍堬紙stack錛?鏍堟槸鏈哄櫒緋葷粺鎻愪緵鐨勬暟鎹粨鏋勶紝璁$畻鏈轟細鍦ㄥ簳灞傚鏍堟彁渚涙敮鎸侊細鍒嗛厤涓撻棬鐨勫瘎瀛樺櫒瀛樻斁鏍堢殑鍦板潃錛屽帇鏍堝嚭鏍堥兘鏈変笓闂ㄧ殑鎸囦護鎵ц錛岃繖灝卞喅瀹氫簡鏍堢殑鏁堢巼姣旇緝楂樸備絾紼嬪簭鍛樻棤娉曞鍏惰繘琛屾帶鍒躲?br>鍫嗭紙heap錛?鏄疌/C++鍑芥暟搴撴彁渚涚殑錛岀敱new鎴杕alloc鍒嗛厤鐨勫唴瀛橈紝涓鑸熷害姣旇緝鎱紝鑰屼笖瀹規槗浜х敓鍐呭瓨紕庣墖銆傚畠鐨勬満鍒舵槸寰堝鏉傜殑錛屼緥濡備負浜嗗垎閰嶄竴鍧楀唴瀛橈紝搴撳嚱鏁頒細鎸夌収涓瀹氱殑綆楁硶錛堝叿浣撶殑綆楁硶鍙互鍙傝冩暟鎹粨鏋?鎿嶄綔緋葷粺錛夊湪鍫嗗唴瀛樹腑鎼滅儲鍙敤鐨勮凍澶熷ぇ灝忕殑絀洪棿錛屽鏋滄病鏈夎凍澶熷ぇ灝忕殑絀洪棿錛堝彲鑳芥槸鐢變簬鍐呭瓨紕庣墖澶錛夛紝灝辨湁鍙兘璋冪敤緋葷粺鍔熻兘鍘誨鍔犵▼搴忔暟鎹鐨勫唴瀛樼┖闂達紝榪欐牱灝辨湁鏈轟細鍒嗗埌瓚沖澶у皬鐨勫唴瀛橈紝鐒跺悗榪涜榪斿洖銆傝繖鏍峰彲鑳藉紩鍙戠敤鎴鋒佸拰鏍稿績鎬佺殑鍒囨崲錛屽唴瀛樼殑鐢寵錛屼唬浠峰彉寰楁洿鍔犳槀璐點傛樉鐒訛紝鍫嗙殑鏁堢巼姣旀爤瑕佷綆寰楀銆?/p>
5銆佸爢鍜屾爤涓殑瀛樺偍鍐呭
鏍堬紙stack錛?鍦ㄥ嚱鏁拌皟鐢ㄦ椂錛岀涓涓繘鏍堢殑鏄富鍑芥暟涓瓙鍑芥暟璋冪敤鍚庣殑涓嬩竴鏉℃寚浠わ紙瀛愬嚱鏁拌皟鐢ㄨ鍙ョ殑涓嬩竴鏉″彲鎵ц璇彞錛夌殑鍦板潃錛岀劧鍚庢槸瀛愬嚱鏁扮殑鍚勪釜褰㈠弬銆傚湪澶у鏁扮殑C緙栬瘧鍣ㄤ腑錛屽弬鏁版槸鐢卞彸寰宸﹀叆鏍堢殑錛岀劧鍚庢槸瀛愬嚱鏁頒腑鐨勫眬閮ㄥ彉閲忋傛敞鎰忥細闈欐佸彉閲忔槸涓嶅叆鏍堢殑銆?褰撴湰嬈″嚱鏁拌皟鐢ㄧ粨鏉熷悗錛屽眬閮ㄥ彉閲忓厛鍑烘爤錛岀劧鍚庢槸鍙傛暟錛屾渶鍚庢爤欏舵寚閽堟寚鍚戞渶寮濮嬪瓨鐨勫湴鍧錛屼篃灝辨槸涓誨嚱鏁頒腑瀛愬嚱鏁拌皟鐢ㄥ畬鎴愮殑涓嬩竴鏉℃寚浠わ紝紼嬪簭鐢辮鐐圭戶緇繍琛屻?br>鍫嗭紙heap錛?涓鑸槸鍦ㄥ爢鐨勫ご閮ㄧ敤涓涓瓧鑺傚瓨鏀懼爢鐨勫ぇ灝忥紝鍫嗕腑鐨勫叿浣撳唴瀹規湁紼嬪簭鍛樺畨鎺掋?/p>
6銆佸瓨鍙栨晥鐜囩殑姣旇緝
榪欎釜搴旇鏄樉鑰屾槗瑙佺殑銆傛嬁鏍堜笂鐨勬暟緇勫拰鍫嗕笂鐨勬暟緇勬潵璇達細
void main()
{
int arr[5]={1,2,3,4,5};
int *arr1;
arr1=new int[5];
for (int j=0;j<=4;j++)
{
arr1[j]=j+6;
}
int a=arr[1];
int b=arr1[1];
}
涓婇潰浠g爜涓紝arr1錛堝眬閮ㄥ彉閲忥級鏄湪鏍堜腑錛屼絾鏄寚鍚戠殑絀洪棿紜湪鍫嗕笂錛屼袱鑰呯殑瀛樺彇鏁堢巼錛屽綋鐒舵槸arr楂樸傚洜涓篴rr[1]鍙互鐩存帴璁塊棶錛屼絾鏄闂產rr1[1]錛岄鍏堣璁塊棶鏁扮粍鐨勮搗濮嬪湴鍧arr1錛岀劧鍚庢墠鑳借闂埌arr1[1]銆?/p>
鎬昏岃█涔嬶紝璦鑰屾諱箣錛?br>鍫嗗拰鏍堢殑鍖哄埆鍙互鐢ㄥ涓嬬殑姣斿柣鏉ョ湅鍑猴細
浣跨敤鏍堝氨璞℃垜浠幓楗閲屽悆楗紝鍙鐐硅彍錛堝0鏄庡彉閲忥級銆佷粯閽便佸拰鍚冿紙浣跨敤錛夛紝鍚冮ケ浜嗗氨璧幫紝涓嶅繀鐞嗕細鍒囪彍銆佹礂鑿滅瓑鍑嗗宸ヤ綔鍜屾礂紕椼佸埛閿呯瓑鎵熬宸ヤ綔錛屼粬鐨勫ソ澶勬槸蹇嵎錛屼絾鏄嚜鐢卞害灝忋?br>浣跨敤鍫嗗氨璞℃槸鑷繁鍔ㄦ墜鍋氬枩嬈㈠悆鐨勮彍鑲達紝姣旇緝楹葷儲錛屼絾鏄瘮杈冪鍚堣嚜宸辯殑鍙e懗錛岃屼笖鑷敱搴﹀ぇ
C/C++搴旇鏄ぇ瀛﹂噷鏈鍏堟帴瑙︾殑緙栫▼璇█錛屽畠浠殑閲嶈鎬т笉璦鑰屽柣銆備絾鏄垜濮嬬粓鎶辯潃“鏁扮粍鍚嶅氨鏄寚閽?#8221;鐨勯敊璇俊鏉″埌鐜板湪錛屽彲鑳芥槸鍥犱負澶у鑰佸笀閿欒鐨勮瑙d嬌鎴戜竴鐩翠繚鐣欑潃榪欑璇В銆傛寚閽堟槸C/C++璇█鐨勭壒鑹詫紝鑰屾暟緇勫悕涓庢寚閽堟湁澶鐨勭浉浼鹼紝鐢氳嚦寰堝鏃跺欙紝鏁扮粍鍚嶅彲浠ヤ綔涓烘寚閽堜嬌鐢紝鎵浠ヤ篃闅懼厤鍦ㄥ涔犱腑灝嗕袱鑰呮販娣嗐傝繖閲屼粙緇嶄笅鎸囬拡鍜屾暟緇勫悕鐨勫尯鍒?
1.鎸囬拡鍜屾暟緇勫悕鍗犳嵁鐨勫唴瀛樼┖闂村ぇ灝忎笉涓鏍鳳紝濡備笅紼嬪簭1錛?br>
char str[10];
char *pstr=str;
cout<
cout<<sizeof
絎竴琛岃緭鍑虹粨鏋滄槸錛?0錛岀浜岃杈撳嚭緇撴灉鏄細4
浠庤繖閲屾垜浠彲浠ョ湅鍑猴細鏁扮粍鍚嶅搴旂潃錛堣屼笉鏄寚鍚戯級涓鍧楀唴瀛橈紙鏁扮粍鎵鍗犵殑鍐呭瓨鍖哄煙錛夋垨鑰呰鏄寚浠f暟緇勮繖縐嶆暟鎹粨鏋勶紝鍏跺湴鍧涓庡閲忓湪鐢熷懡鏈熷唴淇濇寔涓嶅彉錛屽彧鏈夋暟緇勭殑鍐呭鍙互鏀瑰彉銆傛寚閽堝搴旂潃涓涓崰鎹?涓瓧鑺傦紙Win32錛夌殑鍐呭瓨鍖哄煙錛岃屾寚鍚戣繖4涓瓧鑺傛墍瀛樺偍鐨勫湴鍧鎵瀵瑰簲鐨勫唴瀛樺崟鍏冿紝瀹冨彲浠ユ寚鍚戜換鎰忕被鍨嬬殑鍐呭瓨鍧椼傚洜姝わ紝sizeof(str)鍊間負鏁扮粍鍗犳嵁鐨勫唴瀛樼┖闂村ぇ灝忓嵆10涓瓧鑺傦紝鑰宻izeof(pstr)鍊間負鎸囬拡鐨勫煎崰鎹殑鍐呭瓨絀洪棿澶у皬鍗?涓瓧鑺傘?/strong>
2.鏁扮粍鍚嶄笉鏄寚閽堬紝浣嗘槸鍦ㄤ竴瀹氱殑鎯呭喌涓嬭漿鎹負鎸囦唬鏁扮粍鐨勯鍦板潃鐨勬寚閽堬紝鑰岃繖涓暟緇勫悕杞負鐨勬寚閽堝彧鑳芥槸鎸囬拡甯擱噺銆?br>鍦ㄤ互涓嬩袱縐嶆儏鍐典笅鎵嶈兘榪涜榪欑杞崲錛?br>a.鍦ㄧ▼搴?絎簩琛屼唬鐮佷腑錛屽皢鏁扮粍鍚嶇洿鎺ヨ祴鍊肩粰鎸囬拡錛屾鏃舵暟緇勫悕杞崲涓烘寚鍚戞暟緇勭殑棣栧崟鍏冪殑甯擱噺鎸囬拡銆?br>b.鐩存帴灝嗘暟緇勫悕浣滀負鎸囬拡褰㈠弬鐨勬椂鍊欙紝鏁扮粍鍚嶅垯杞崲涓烘寚鍚戞暟緇勭殑棣栧崟鍏冪殑甯擱噺鎸囬拡榪涜浼犻掞紝濡備笅紼嬪簭2錛?br>
void fun(char str[])
{
cout<
str++;
}
void main()
{
…
char str1[5];
fun(str1);
…
}
娉ㄦ剰錛氭暟緇勫悕浣滀負鍑芥暟褰㈠弬榪涜浼犻掓椂錛屽湪瀛愬嚱鏁頒綋鍐咃紝瀹冨凡緇忎笉鍐嶆槸涓涓寚閽堝父閲忥紝鑰屾槸鍙樻垚涓涓湡姝g殑鎸囬拡錛屽彲浠ヨ繘琛屽鍑忕瓑鎿嶄綔錛屽彲浠ヨ淇敼銆傛墍浠ョ▼搴?涓瓙紼嬪簭絎竴鏉¤鍙ヨ緭鍑虹殑sizeof(str)鐨勫間負4.
鏃㈢劧鏁扮粍鍚嶅彲浠ヨ鐪嬩綔鎸囬拡甯擱噺錛岃屽父閲忔槸涓嶈兘淇敼鐨勶紝閭d箞濡備笅浠g爜鏄笉鍏佽鐨勶細
char str[10];
str++;
浣嗗涓嬩唬鐮佸垯鍚堟硶鐨勶細
char str[10];
char *pstr=str;
pstr++;
3.浣跨敤鎸囬拡璁塊棶鏁扮粍鍜屼嬌鐢ㄦ暟緇勫悕璁塊棶鏁扮粍鏈川涓嶅悓銆?br>渚嬪錛?br>
char str[7]=”ksarea”;
char *pstr=str;
cout<
……
case 甯擱噺琛ㄨ揪寮弉:
璇彞n;
break;
default:
璇彞n+1;
break;
}
鍦╦ava.lang.Math涓湁涓狹ath.random()鏂規硶錛屽畠鍙互浜х敓0-1涔嬮棿錛堝寘鎷?浣嗕笉鍖呮嫭1錛夌殑浠繪剰灝忔暟
鍦↗ava涓垜浠彲浠ヤ嬌鐢╦ava.util.Random綾繪潵浜х敓涓涓殢鏈烘暟鍙戠敓鍣ㄣ傚畠鏈変袱縐嶅艦寮忕殑鏋勯犲嚱鏁幫紝鍒嗗埆鏄疪andom()鍜孯andom(long seed)銆俁andom()浣跨敤褰撳墠鏃墮棿鍗砈ystem.currentTimeMillis()浣滀負鍙戠敓鍣ㄧ殑縐嶅瓙錛孯andom(long seed)浣跨敤鎸囧畾鐨剆eed浣滀負鍙戠敓鍣ㄧ殑縐嶅瓙銆?/p>
闅忔満鏁板彂鐢熷櫒(Random)瀵硅薄浜х敓浠ュ悗錛岄氳繃璋冪敤涓嶅悓鐨刴ethod錛歯extInt()銆乶extLong()銆乶extFloat()銆乶extDouble()絳夎幏寰椾笉鍚岀被鍨嬮殢鏈烘暟銆?/p>
1>鐢熸垚闅忔満鏁?br> Random random = new Random();
Random random = new Random(100);//鎸囧畾縐嶅瓙鏁?00
random璋冪敤涓嶅悓鐨勬柟娉曪紝鑾峰緱闅忔満鏁般?br> 濡傛灉2涓猂andom瀵硅薄浣跨敤鐩稿悓鐨勭瀛愶紙姣斿閮芥槸100錛夛紝騫朵笖浠ョ浉鍚岀殑欏哄簭璋冪敤鐩稿悓鐨勫嚱鏁幫紝閭e畠浠繑鍥炲煎畬鍏ㄧ浉鍚屻傚涓嬮潰浠g爜涓袱涓猂andom瀵硅薄鐨勮緭鍑哄畬鍏ㄧ浉鍚?br> import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
}
}
2>鎸囧畾鑼冨洿鍐呯殑闅忔満鏁?br> 闅忔満鏁版帶鍒跺湪鏌愪釜鑼冨洿鍐?浣跨敤妯℃暟榪愮畻絎?
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random = new Random();
for(int i = 0; i < 10;i++) {
System.out.println(Math.abs(random.nextInt())%10);
}
}
}
鑾峰緱鐨勯殢鏈烘暟鏈夋鏈夎礋鐨勶紝鐢∕ath.abs浣胯幏鍙栨暟鎹寖鍥翠負闈炶礋鏁?/p>
3>鑾峰彇鎸囧畾鑼冨洿鍐呯殑涓嶉噸澶嶉殢鏈烘暟
import java.util.*;
class TestRandom {
public static void main(String[] args) {
int[] intRet = new int[6];
int intRd = 0; //瀛樻斁闅忔満鏁?br> int count = 0; //璁板綍鐢熸垚鐨勯殢鏈烘暟涓暟
int flag = 0; //鏄惁宸茬粡鐢熸垚榪囨爣蹇?br> while(count<6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i=0;i<count;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
for(int t=0;t<6;t++){
System.out.println(t+"->"+intRet[t]);
}
}
}
1錛岃娉ㄦ剰涓嶅悓鐨勫嚱鏁版槸鍚︽帴鍙楃┖鏍肩銆佹槸鍚﹁垗寮冩渶鍚庣殑鍥炶濺絎︾殑闂!
璇誨彇瀛楃鏃訛細
scanf()浠pace絀烘牸銆丒nter銆乀ab緇撴潫涓嬈¤緭鍏ワ紝涓嶄細鑸嶅純鏈鍚庣殑鍥炶濺絎︼紙鍗沖洖杞︾浼氭畫鐣欏湪緙撳啿鍖轟腑錛夛紝錛堝尯鍒瀛楃涓叉椂浼氭竻妤氾級//鎵浠ュ彲浠ョ敤getchar()娓呴櫎錛?/p>
getchar()浠nter緇撴潫杈撳叆錛屼篃涓嶄細鑸嶅純鏈鍚庣殑鍥炶濺絎︼紱
璇誨彇瀛楃涓叉椂錛?/p>
scanf()浠pace銆丒nter銆乀ab緇撴潫涓嬈¤緭鍏ワ紝浼氳垗寮冩渶鍚庣殑鍥炶濺絎︼紙鍖哄埆璇誨瓧絎︽椂錛夊拰鎵鏈夌殑絀烘牸絳夌瓑銆?o:p>
gets()浠nter緇撴潫杈撳叆錛堢┖鏍間笉緇撴潫錛夛紝鎺ュ彈絀烘牸錛屼細鑸嶅純鏈鍚庣殑鍥炶濺絎︼紒
絎簩錛氫負浜嗛伩鍏嶅嚭鐜頒笂榪伴棶棰橈紝蹇呴』瑕佹竻絀虹紦鍐插尯鐨勬畫鐣欐暟鎹紝鍙互鐢ㄤ互涓嬬殑鏂規硶瑙e喅錛?/p>
鏂規硶1錛欳璇█閲屾彁渚涗簡鍑芥暟娓呯┖緙撳啿鍖猴紝鍙鍦ㄨ鏁版嵁涔嬪墠鍏堟竻絀虹紦鍐插尯灝辨病闂浜嗭紒
榪欎釜鍑芥暟鏄痜flush(stdin)銆?/p>
鏂規硶2錛氳嚜宸卞彇鍑虹紦鍐插尯閲岀殑孌嬬暀鏁版嵁銆?/p>
scanf("%[^\n]",string);
-------------------------涓. cin<<
璇ユ搷浣滅鏄牴鎹悗闈㈠彉閲忕殑綾誨瀷璇誨彇鏁版嵁銆?/p>
杈撳叆緇撴潫鏉′歡 錛氶亣鍒癊nter銆丼pace銆乀ab閿?榪欎釜寰堥噸瑕侊紒)
瀵圭粨鏉熺鐨勫鐞?錛氭竻妤氱紦鍐插尯涓嬌寰楄緭鍏ョ粨鏉熺殑緇撴潫絎?Enter銆丼pace銆乀ab)
(榪欓噷鏈変竴鐐歸棶棰橈紝浜岋紟cin.get()
璇ュ嚱鏁版湁涓夌鏍煎紡錛氭棤鍙傦紝涓鍙傛暟錛屼簩鍙傛暟
鍗砪in.get(), cin.get(char ch), cin.get(array_name, Arsize)
錛坕錛夎鍙栧瓧絎︾殑鎯呭喌錛?/p>
杈撳叆緇撴潫鏉′歡錛欵nter閿紙閬囩┖鏍間笉緇撴潫錛?/p>
瀵圭粨鏉熺澶勭悊錛氫笉涓㈠純緙撳啿鍖轟腑鐨凟nter
cin.get() 涓?cin.get(char ch)鐢ㄤ簬璇誨彇瀛楃錛屼粬浠殑浣跨敤鏄浉浼肩殑錛?/p>
鍗籌細ch=cin.get() 涓?cin.get(ch)鏄瓑浠風殑銆?br>
嫻嬭瘯紼嬪簭錛?br>#include <iostream>
using namespace std;
int main()
{
char c1, c2;
cin.get(c1);
cin.get(c2);
cout<<c1<<" "<<c2<<endl; // 鎵撳嵃涓や釜瀛楃
cout<<(int)c1<<" "<<(int)c2<<endl; // 鎵撳嵃榪欎袱涓瓧絎︾殑ASCII鍊?/p>
return 0;
}
嫻嬭瘯涓杈撳叆錛?/p>
a[Enter]
杈撳嚭:
a
97 10
銆愬垎鏋愩戜細鍙戠幇鍙墽琛屼簡涓嬈′粠閿洏杈撳叆錛屾樉鐒剁涓涓瓧絎﹀彉閲忓彇鐨?a', 絎簩涓彉閲忓彇鐨勬槸Enter(ASCII鍊間負10)錛岃繖鏄洜涓鴻鍑芥暟涓嶄涪寮冧笂嬈¤緭鍏ョ粨鏉熸椂鐨凟nter瀛楃錛屾墍浠ョ涓嬈¤緭鍏ョ粨鏉熸椂緙撳啿鍖轟腑孌嬬暀鐨勬槸涓婃杈撳叆緇撴潫鏃剁殑Enter瀛楃錛?/p>
嫻嬭瘯浜岃緭鍏ワ細
a b[Enter]
杈撳嚭錛?/p>
a
97 32
銆愬垎鏋愩戞樉鐒剁涓涓瓧絎﹀彉閲忓彇鐨?a', 絎簩涓彉閲忓彇鐨勬槸Space(ASCII鍊間負32)銆傚師鍥犲悓涓婏紝娌℃湁涓㈠純Space瀛楃銆?/p>
錛坕i錛夎鍙栧瓧絎︿覆鐨勬儏鍐碉細
cin.get(array_name, Arsize)鏄敤鏉ヨ鍙栧瓧絎︿覆鐨勶紝鍙互鎺ュ彈絀烘牸瀛楃錛岄亣鍒癊nter緇撴潫杈撳叆錛屾寜鐓ч暱搴?Arsize)璇誨彇瀛楃, 浼氫涪寮冩渶鍚庣殑Enter瀛楃銆?/p> 錛坕 i i錛塩in.getline()
cin.getline() 涓?cin.get(array_name, Arsize)鐨勮鍙栨柟寮忓樊涓嶅錛屼互Enter緇撴潫錛屽彲浠ユ帴鍙楃┖鏍煎瓧絎︺傛寜鐓ч暱搴?Arsize)璇誨彇瀛楃, 浼氫涪寮冩渶鍚庣殑Enter瀛楃銆?/p>
浣嗘槸榪欎袱涓嚱鏁版槸鏈夊尯鍒殑錛?/p>
cin.get(array_name, Arsize)
褰撹緭鍏ョ殑瀛楃涓茶秴闀挎椂錛屼笉浼氬紩璧穋in鍑芥暟鐨勯敊璇紝鍚庨潰鐨刢in鎿嶄綔浼氱戶緇墽琛岋紝鍙槸鐩存帴浠庣紦鍐插尯涓彇鏁版嵁銆備絾鏄痗in.getline()
褰撹緭鍏ヨ秴闀挎椂錛屼細寮曡搗cin鍑芥暟鐨勯敊璇紝鍚庨潰鐨刢in鎿嶄綔灝嗕笉鍐嶆墽琛屻傦紙鍏蜂綋鍘熷洜灝嗗湪涓嬩竴閮ㄥ垎"cin鐨勯敊璇鐞?涓緇嗕粙緇嶏級
------------
cin鐨勯敊璇鐞?br>
紼嬪簭鎵ц鏃舵湁涓涓爣蹇楀彉閲忔潵鏍囧織杈撳叆鐨勫紓甯哥姸鎬侊紝鍏朵腑鏈変笁浣嶆爣蹇椾綅鍒嗗埆鐢ㄦ潵鏍囧織涓夌寮傚父淇℃伅錛屼粬浠垎鍒槸錛?/span>failbit錛?/span>eofbit錛?/span>badbit銆傝繖涓変釜鏍囧織浣嶅湪鏍囧織鍙橀噺涓槸榪欐牱鍒嗛厤鐨勶細
____________________________________
| 2 | 1 | 0 |
| failbit | eofbit | badbit |
|___________|__________|___________|
鐪嬩竴涓嬭繖鍑犱釜鏍囧織浣嶇殑浣滅敤(寮曠敤msdn)錛?/span>
badbit, to record a loss of integrity of the stream buffer.
eofbit, to record end-of-file while extracting from a stream.
failbit, to record a failure to extract a valid field from a stream.
In addition, a useful value is goodbit, where no bits are set.
鎺ヤ笅鏉ユ垜涔堢湅鍑犱釜ios綾葷殑鏁版嵁瀹氫箟(寮曠敤msdn)錛?/span>
typedef T2 iostate;
static const iostate badbit, eofbit, failbit, goodbit;
榪欓噷ios綾誨畾涔変簡榪欏洓涓父閲?/span>badbit, eofbit, failbit, goodbit錛屽叾瀹炶繖鍥涗釜鏍囧織甯擱噺灝辨槸鍙栧搴旀爣蹇椾綅鐨勬帺鐮侊紝涔熷嵆杈撳叆鐨勫洓縐嶅紓甯告儏鍐碉紒
浠ヤ笂鍥涗釜甯擱噺瀵瑰簲鐨勫彇鍊間負錛?/span>
ios::badbit 001 杈撳叆錛堣緭鍑猴級嫻佸嚭鐜拌嚧鍛介敊璇紝涓嶅彲鎸藉洖
ios::eofbit 010 宸茬粡鍒拌揪鏂囦歡灝?/span>
ios::failbit 100 杈撳叆錛堣緭鍑猴級嫻佸嚭鐜伴潪鑷村懡閿欒錛屽彲鎸藉洖
ios::goodbit 000 嫻佺姸鎬佸畬鍏ㄦ甯?/span>, 鍚勫紓甯告爣蹇椾綅閮戒負0
濡傛灉鍑虹幇杈撳叆閿欒錛屽垯cin涓嶅啀宸ヤ綔錛屾垜浠彲浠ョ敤cin.clear()閲嶇疆鏍囪浣嶃?span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
嫻嬭瘯紼嬪簭錛?/span>
#include <iostream>
using namespace std;
int main ()
{
char ch, str[20];
cin.getline(str, 5);
cout<<"flag1:"<<cin.good()<<endl; // 鏌ョ湅goodbit鐘舵侊紝鍗蟲槸鍚︽湁寮傚父
cin.clear(); // 娓呴櫎閿欒鏍囧織
cout<<"flag1:"<<cin.good()<<endl; // 娓呴櫎鏍囧織鍚庡啀鏌ョ湅寮傚父鐘舵?/span>
cin>>ch;
cout<<"str:"<<str<<endl;
cout<<"ch :"<<ch<<endl;
return 0;
}
嫻嬭瘯杈撳叆錛?/span>
12345[Enter]
杈撳嚭錛?/span>
flag1:0 // good()榪斿洖false璇存槑鏈夊紓甯?/span>
flag2:1 // good()榪斿洖true璇存槑錛?/span>clear()宸茬粡娓呴櫎浜嗛敊璇爣蹇?/span>
str:1234
ch :5
浣嗘槸褰撳墠涓嬈¤鍙栨暟鎹嚭閿欏悗錛屽鏋滅紦鍐插尯娌℃湁娓呯┖鐨勮瘽錛岄噸緗敊璇爣蹇楄繕涓嶅錛佽鏄兘灝嗙紦鍐插尯鐨勬畫鐣欐暟鎹竻絀轟簡灝卞ソ浜嗗摝錛佷笅闈㈡垜浠啀鏉ョ湅涓涓緢閲嶈鐨勫嚱鏁幫紒cin.ignore()
鍏跺疄璇ュ嚱鏁版渶甯哥敤鐨勬柟寮忔槸榪欐牱鐨勶紝灝嗙涓涓弬鏁拌鐨勯潪甯稿ぇ錛屽皢絎簩涓弬鏁拌涓?/span>'\n'錛岃繖鏍峰氨鍙互緙撳啿鍖轟腑鍥炶濺絎︿腑鐨勬墍鏈夋畫鐣欐暟鎹紝鍥犱負涓鑸儏鍐典笅鍓嶉潰杈撳叆孌嬬暀鐨勬暟鎹槸娌℃湁鐢ㄧ殑錛屾墍浠ュ湪榪涜鏂頒竴嬈¤緭鍏ユ搷浣滃墠灝嗙紦鍐插尯涓墍鏈夋暟鎹竻絀烘槸姣旇緝鍚堢悊銆?/span>
濡傦細cin.ignore(1024, '\n');
a alien born less lien never nevertheless new newborn the zebra
alien newborn 杈撳叆鏄瓧鍏稿簭鐨勶紝棰樻剰灝辨槸璁蹭竴涓崟璇嶅垎鎴愪袱鍗婏紝涓斾袱鍗婇兘鍑虹幇鍦ㄨ緭鍏ヤ腑錛屽垯灝嗘鍗曡瘝杈撳嚭銆備笅闈㈢殑浠g爜鏄姣忎竴涓崟璇嶅皾璇曟墍鏈夌殑鍒嗘媶鏂規硶錛屼竴涓釜鍘誨鎵炬槸鍚︽媶鎴愮殑涓?/pre>涓槸鍚﹂兘瀛樺湪錛屽鏋滀袱涓瓧涓查兘瀛樺湪錛屽垯杈撳嚭錛屽悓鏃惰煩鍑哄驚鐜紙鍚﹀垯鍙兘閲嶅杈撳嚭錛夈?/pre>鍏跺疄鏈夋洿楂樻晥鐨勬柟娉曪紝灝辨槸鍒版瘡涓崟璇嶅墠闈㈠鎵炬槸鍚︽湁浠栫殑瀛椾覆錛堟瘮濡俷ewborn 鍓嶉潰鏈塶ew,neverthelsess 鍓嶉潰鏈塶ever錛夛紝鏈夌殑璇濓紝鍐嶆壘鍚庡崐閮ㄥ垎鏄惁鍦ㄨ緭鍏ヤ腑銆?/pre>----鑾峰彇瀛愪覆鐨勬柟娉曘?string B = A.substr(start,length);
start涓哄瓙涓插湪A涓殑寮濮嬩綅緗?
length涓哄瓙涓茬殑闀垮害渚嬪瓙
void main()
{
string st="ifn",b;
b=st.substr(0,2);
cout<<b;
}
緇撴灉 if----鐐規浠g爜
#include<iostream>
#include<cstdlib>
using namespace std;
string a[120000];
bool bsearch(string s,int n)
{
int begin=0;
int end=n-1;
int mid;
while(begin<=end)
{
mid=(begin+end)/2;;
if(a[mid]==s)
return true;
if(a[mid]>s)
{
end=mid-1;
}
else
{
begin=mid+1;
}
}
return false;
}
int main()
{
string b;
int i=0,j,k;
while(cin>>b)
{
a[i]=b;
i++;
}
for(j=1;j<i;j++)
{
for(k=1;k<a[j].size();k++)
{
string tem(a[j],0,k);
string temp(a[j],k,a[j].size());
if(bsearch(temp,i)&&bsearch(tem,i))
{
cout<<a[j]<<endl;
break;
}
}
}
//system("PAUSE");
return 0;
}
]]>
Status | In/Out | TIME Limit | MEMORY Limit | Submit Times | Solved Users | JUDGE TYPE |
---|---|---|---|---|---|---|
![]() |
stdin/stdout | 3s | 8192K | 356 | 152 | Standard |
Give you a sequence of words, can you sort them in dictionary order?
eg.
yes accidental baby accept accidentIn dictionary order, those words should be printed as the following
accept accident accidental baby yesBut we will make an interesting rule this time. See your keyboard or the picture below:
yes accidental baby accept accident
baby accident accidental accept yes
int main()
{
//freopen("s.txt","r",stdin);
//freopen("key.txt","w",stdout);
int n;
int temp;
while(cin>>n)
{
cout<<setw(5)<<n<<" -> " ;
temp=1;
for(int j=1;j<=n;j++)
{
int i=j;
while(i%10==0)
{
i/=10;
}
while(i%5==0)
{
i/=5;
temp/=2;
}
temp*=i;
//¼ÆËãĩλ
temp%=100000;
}
while(temp%10==0)
temp/=10;
temp%=10;
cout<<temp<<endl;
}
//system("PAUSE");
return 0;
}
涓縐嶆槸鍒嗙被鐨勬濇兂
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
long a[10001]={0,1,2,6,4,2},b[5]={0,2,4,8,6},i,m,n;
for(i=6;i<=10000;i++)
{
m=i%5;
n=i/5;
if(m!=0)
a[i]=a[i-1]*i%10;
else
a[i]=b[(n-1)%4+1]*a[n]%10;
}
while(cin>>n)
cout<<setw(5)<<n<<" -> "<<a[n]<<endl;
return 0;
}
Status | In/Out | TIME Limit | MEMORY Limit | Submit Times | Solved Users | JUDGE TYPE |
---|---|---|---|---|---|---|
![]() |
stdin/stdout | 3s | 8192K | 135 | 46 | Standard |
You, as a member of a development team for a new spell checking program, are to write a module that will check the correctness of given words using a known dictionary of all correct words in all their forms.
If the word is absent in the dictionary then it can be replaced by correct words (from the dictionary) that can be obtained by one of the following operations:
Your task is to write the program that will find all possible replacements from the dictionary for every given word.
The first part of each test case contains all words from the dictionary. Each word occupies its own line. This part is finished by the single character '#' on a separate line. All words are different. There will be at most 10000 words in the dictionary.
The next part of the test case contains all words that are to be checked. Each word occupies its own line. This part is also finished by the single character '#' on a separate line. There will be at most 50 words that are to be checked.
All words in the input (words from the dictionary and words to be checked) consist only of small alphabetic characters and each one contains 15 characters at most.
The first line of the input contains an integer N, which is the number of test cases in the input, followed by N test cases described above.
1 i is has have be my more contest me too if award # me aware m contest hav oo or i fi mre #
Scenario #1: me is correct aware: award m: i my me contest is correct hav: has have oo: too or: i is correct fi: i mre: more me
You have decided that PGP encryptation is not strong enough for your email. You have decided to supplement it by first converting your clear text letter into Pig Latin before encrypting it with PGP.
You are to write a program that will take in an arbitrary number of lines of text and output it in Pig Latin. Each line of text will contain one or more words. A ``word'' is defined as a consecutive sequence of letters (upper and/or lower case). Words should be converted to Pig Latin according to the following rules (non-words should be output exactly as they appear in the input):
This is the input.
hisTay isay hetay inputay.
4 1 4 4 1 2 5 5 2
Yes
1錛岃繖縐嶇被浼肩█鐤忕煩闃電殑鏁扮粍瀵逛竴鑸笉鐢ㄦ暟緇勫瓨鍌紝鐢ㄧ粨鏋勪綋姣旇緝濂?/pre>2錛屾帓搴忓悗姣旇緝闈炲父鐨勫閥濡欍?/pre>#include<iostream> #include<cstdlib> using namespace std; struct mm{ double a; double b;}M[100000]; bool operator<(mm m1,mm m2) { if(m1.a<m2.a) return true; else { if(m1.a==m2.a&&m1.b<m2.b) return true; } return false; } int main() { // freopen("s.txt","r",stdin); // freopen("key.txt","w",stdout); int num; double a,b; int temp=0; while(cin>>num) { memset(M,0,sizeof(M)); temp=0; for(int k=0;k<num;k++) { cin>>a>>b; if(a<b) { M[temp].a=a; M[temp].b=b; temp++; } else if(a>b)//鎶奱鍜宐鐩哥瓑鐨勯兘鍘繪帀浜? { M[temp].a=b; M[temp].b=a; temp++; } } if(temp%2!=0)cout<<"No"<<endl; else { sort(M,M+temp); int flag=0; for(int p=0;p<temp;p+=2) { if(M[p].b!=M[p+1].b||M[p].a!=M[p+1].a) { flag=1;break; } } if(flag==0) cout<<"Yes"<<endl; else cout<<"No"<<endl; } } //system("PAUSE"); return 0; }
]]>