1+2+3+。。。+10000000000,這個(gè)算式的結(jié)果是5.0000000005E+19,太大了,已經(jīng)超了int型的范圍了。
如果只是測(cè)加法的時(shí)間,推薦用循環(huán)嵌套,類(lèi)似這樣
for (int i = 0; i < 1000000; i++) {
n = 0;
for (int j = 0; j < 10000; j++) {
n += j;
}
}
new是再堆上開(kāi)內(nèi)存,除非整個(gè)進(jìn)程結(jié)束,這時(shí)候會(huì)被操作系統(tǒng)回收,不然的話(huà)函數(shù)結(jié)束后內(nèi)存里的變量還在的
可能是因?yàn)槟愕哪夸浿杏锌崭駥?dǎo)致命令行參數(shù)出錯(cuò)。建議把代碼放到別的目錄下。比如D:projectsprotobuf下面編譯。
#include <cstdio>
int add()
{
int a=2;
int b=3;
int c=a+b;
return c;
}
int main()
{
int *p;
int i = add();
p=&i;
*p=20;
printf("%d", *p);
fflush(stdout);
return 0;
}
報(bào)錯(cuò)信息很明顯了, c++不允許從int
轉(zhuǎn)為int*
.
好好份書(shū)或者教程看看吧...
恭喜你, 遇到了一個(gè)編譯器的bug
這是gcc以前的一個(gè)bug: https://gcc.gnu.org/bugzilla/...
可能5.0以后才修好了.
clang也有類(lèi)似的bug: https://bugs.llvm.org/show_bu... 里面的解釋值得一讀, 我節(jié)選下:
template<typename T> T end(T);
template <typename T>
void Foo() {
T it1;
if (it1->end < it1->end) {
}
}
Foo() is trying to use a public member variable of "*it1". Because there's a global template with the same name, it interprets the subsequent '<' as starting a template instantiation, and then finds trouble many tokens later when there's no matching '>'.
- possible fixit is to add parentheses around "it1->end".
char()改成char[]
知道了,數(shù)組越界了= =,主函數(shù)里面maxHeap = new long long[N]
改為maxHeap = new long long[N + 1]
。因?yàn)槭菑南聵?biāo)為1開(kāi)始建立的。
Element.innerHTML = html
這樣才會(huì)把字符串解析為HTML
就算加了幾個(gè)字段,但是首字母和index對(duì)應(yīng)關(guān)系還是沒(méi)變! 還是不需要散列函數(shù)呀?
同樣的程序,mac未拋出異常,正常執(zhí)行3分鐘收到數(shù)據(jù)
https://docs.python.org/2.7/l...
看看你客戶(hù)端的timeout默認(rèn)是None么,可能版本不同
python 2.7.10
簡(jiǎn)單說(shuō)下吧,有時(shí)間再來(lái)補(bǔ)上。
以下結(jié)果基于gcc5.4
#include <stdio.h>
int main(void)
{
float a,b;
b = 2.0e20 + 1.0;
a = b - 2.0e20;
printf("%f\n", a);
}
---
4008175468544.000000
如果把1.0
換成1e2, 1e3...1e13
,得到的結(jié)果都是一樣的。
float
使用23位存尾數(shù)的,注意這23位存的是01串,是二進(jìn)制的尾數(shù)。
由于2^23 = 8388608
(只是簡(jiǎn)單計(jì)算,去看IEEE754知道還隱含了一個(gè)1),所以存儲(chǔ)十進(jìn)制的小數(shù)小數(shù)點(diǎn)后精度也就6、7位。
浮點(diǎn)數(shù)的計(jì)算,見(jiàn)維基百科這里
可知,浮點(diǎn)數(shù)計(jì)算需要把指數(shù)統(tǒng)一然后計(jì)算,那么問(wèn)題來(lái)了,無(wú)論是1.0
統(tǒng)一到2.0e20
還是2,0e20
統(tǒng)一到1.0
,尾數(shù)的精度都超過(guò)了上面的精度,所以就有了這種奇怪的結(jié)果。
這個(gè)奇怪結(jié)果的產(chǎn)生和類(lèi)型也有關(guān)系,1.0
和 2.0e20
都是double型,這意味著b = 2.0e20 + 1.0
是先對(duì)兩個(gè)double型字面量計(jì)算,然后再賦給float型變量b
,精度丟失。
題主有興趣的話(huà),去看看IEEE754標(biāo)準(zhǔn),以及Google一下浮點(diǎn)數(shù)的計(jì)算
顯示的時(shí)候在 pri_name 前面添加 level個(gè)空格或者其它符號(hào) 就可以了
A c(a)
會(huì)調(diào)用 A::A(const A&)
,是 A 的拷貝構(gòu)造函數(shù),它與控構(gòu)造函數(shù)一樣,如果不自定義,編譯器會(huì)自動(dòng)生成一個(gè)。使用花括號(hào)來(lái)初始化對(duì)象是 C++11 的標(biāo)準(zhǔn):
std::initializer_list
來(lái)捕獲這個(gè)列表。int a{10}
。std::array
是一個(gè)結(jié)構(gòu)體,內(nèi)部是原生數(shù)組,也可以自動(dòng)填充:std::array<int, 3> f3{1, 2, 3};
。std::vector
實(shí)現(xiàn)了 std::initializer_list
構(gòu)造:std::vector<int> v{10, 3}
(得到長(zhǎng) 2 的 vector,v[0] 是 10,v[1] 是 3)。std::vector<std::string> v{10, "hello"}
,會(huì)得到長(zhǎng)度是 10 的 vector。因?yàn)榕c上面的例三對(duì)比,它匹配 vector(std::initializer_list<T>, const Allocator& alloc = Allocator())
失敗了。A a()
的作用往往出人意料,它不是用空參數(shù)構(gòu)造器構(gòu)造一個(gè) A
類(lèi)型的對(duì)象,而是聲明一個(gè)返回類(lèi)型是 A
,函數(shù)名是 a
,并且函數(shù)參數(shù)列表空的函數(shù);期待的空參數(shù)構(gòu)造方式應(yīng)該是 A a
。11 標(biāo)準(zhǔn)選取了 A a{}
,其作用與 A a
無(wú)異。我將源代碼進(jìn)行了修改的 ,可以參考如下代碼 :
#include <iostream>
#include <cstdlib>
//前置聲明只能充當(dāng)?shù)淖饔?:
//1.定義一個(gè)指向該類(lèi)型的指針和引用
//2.在不完全類(lèi)型期間只能充當(dāng)函數(shù)聲明的的參數(shù)類(lèi)型
class Date;
class Time
{
public:
Time(int h, int m, int s): hour(h) , minute(m) , second(s){};
~Time(){};
void displayTime(Date&); // 錯(cuò)誤C2061
private:
int hour;
int minute;
int second;
};
class Date
{
public:
Date(int y, int m, int d): year(y) , month(m) , day(d){};
~Date(){}
friend void Time::displayTime(Date &); //錯(cuò)誤C2245
private:
int year;
int month;
int day;
};
//最后定義clear函數(shù)
void Time::displayTime(Date& date){
std::cout <<date.year<<std::endl;
}
int main(){
Date date(1,2,3);
Time time(4,5,6);
time.displayTime(date);
return EXIT_SUCCESS;
}
下圖是成員函數(shù)充當(dāng)友元函數(shù)的操作順序 , 參考《C++ primer 第五版》 總結(jié)出的圖 :
注意 : 其中的 Window_mgr 等價(jià) Time 類(lèi) , Screen類(lèi)等價(jià)Date類(lèi)
void create(){
int m,n;
printf("請(qǐng)輸入行數(shù)m\n");
scanf("%d",&m);
printf("請(qǐng)輸入列數(shù)n\n");
scanf("%d",&n);
printf("%d,%d\n",m,n);
int a[m][n];
for (int i = 0; i < m; i++){
for (int j = 0; j < n; j++) {
printf("請(qǐng)輸入矩陣%d%d值\n",i,j);
getchar();
//這里也應(yīng)該是a[i][j]
scanf("%d", &a[i][j]);
printf("%d\t", a[i][j]);
}
}
for(int i = 0; i < m; i++) {
for(int j = 0; j<n; j++){
//這里應(yīng)該是a[i][j]
printf("%d\n", a[i][j]);
}
}
}
int main(){
create();
return 0;
}
放到全局 <style>...</style> 里先看看
引用傳值
$items 循環(huán)改變的是自身
比如第一次循環(huán)引用傳值變成了 $arr, 第二次循環(huán)也就是循環(huán)的$arr,就等于當(dāng)前循環(huán)的數(shù)組沒(méi)每循環(huán)一次,初始數(shù)據(jù)都是上一次循環(huán)的結(jié)果。
第一次變成這樣 以此類(lèi)推
$arr=[
[
"id"=>1,
"pid"=>0,
"name"=>'北京市',
"son"=>[
[
"id"=>3,
"pid"=>1,
"name"=>"海淀區(qū)"
]
]
],
[
"id"=>1,
"pid"=>0,
"name"=>'黑龍江省',
]
];
start_routine 參數(shù)的原型是
void *(*start_routine) (void *)
不是
void (start_routine)(void)
或
void (start_routine)(void*)
請(qǐng)參照文檔 http://man7.org/linux/man-pag...
默認(rèn)情況下,gcc 要開(kāi)啟 -Wreturn-type 才會(huì)警告 “在非 void 返回值函數(shù)中沒(méi)有 return 語(yǔ)句”,
一般建議打開(kāi) -Wall 選項(xiàng),可將所有警告當(dāng)成編譯錯(cuò)誤,如
gcc -Wall a.c
若使用 g++ 編譯,則不必顯式指定 -Wreturn-type,因它規(guī)定要寫(xiě) return(對(duì)非 void 返回值)。
語(yǔ)法上兩回事,畢竟小括號(hào)與花括號(hào)不同。但是列表初始化有時(shí)候等價(jià)于直接初始化(非聚合類(lèi)型),有時(shí)候等價(jià)于直接賦值成員(聚合類(lèi)型)。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。