【求解答】我在a.h这个头文件里面定义了A类,实现在a.cpp,之后在b.h头文件

求解答】我在a.h这个头文件里面定义了A类,实现在a.cpp,之后在b.h头文件#include“a.h”,并在B类中定义A a,会出现多种错误。

![图片说明](https://img-ask.csdn.net/upload/201705/17/1495031163_974381.png)图片说明

4个回答

你对animation类的默认构造函数animation()做定义了吗

lzl569029783
stonerebel 解决了就好,你采纳一下吧,谢谢
接近 3 年之前 回复
qq_33537854
猫牌铅笔 嗯。没有默认构造函数的原因。谢谢
接近 3 年之前 回复

图片说明

你把两个类的声明发上来看看,之前遇到过一样的问题,已经解决了,看看是不是相同问题

qq_33537854
猫牌铅笔 这张图片是定义animation类 ![图片说明](http://img.ask.csdn.net/upload/201705/18/1495068515_494017.png) 这张图片使用animation类 ![图片说明](http://img.ask.csdn.net/upload/201705/18/1495068875_604522.png) 这是出现的错误 ![图片说明](http://img.ask.csdn.net/upload/201705/18/1495068895_507924.png)和昨天的错误不一样
接近 3 年之前 回复

这张图片是定义animation类
图片说明

这张图片使用animation类
图片说明

这是出现的错误
图片说明
和昨天的错误不一样

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求解答】我在a.h这个头文件里面定义了A类,实现在a.cpp,之后在b.h
求解答】我在a.h这个头文件里面定义了A类,实现在a.cpp,之后在b.h头文件#include“a.h”,并在B类中定义A a,会出现多种错误。 这张图片定义animation类 ![图片说明](https://img-ask.csdn.net/upload/201705/18/1495069081_526370.png) 这张图片使用animation类 ![图片说明](https://img-ask.csdn.net/upload/201705/18/1495069108_949879.png) 这是出现的错误 ![图片说明](https://img-ask.csdn.net/upload/201705/18/1495069135_443748.png)
Makefile找不到头文件
小白学习Makefile遇到一个小问题,一直没找到解决方案,求教各位大神解答 系统环境:Ubuntu14.04 文件夹目录下的文件:main.c,add.c,math.h,defi.h,Makefile 文件内容: math.h ``` int add(int x,int y); ``` add.c ``` #include<math.h> int add(int x,int y) { return x+y; } ``` defi.h ``` #define A 1 ``` main.c ``` #include<stdio.h> #include<math.h> #include<defi.h> int main() { int result = 0; result = add(4,A); printf("result:%d\n",result); return 0; } ``` Makefile ``` edit : main.o add.o gcc -o edit main.o add.o main.o: main.c math.h defi.h gcc -c main.c add.o: add.c math.h gcc -c add.c clean: rm edit main.o add.o ``` 在Linux该文件夹目录下执行make总是提示找不到defi.h头文件,但是我在Makefile和main.c中去掉defi.h头文件,并将main.c文件中的“A”用“1”来代替就可以运行 请问各位大神这是什么原因导致的啊,本人新手,所以makefile中没用变量这些来定义头文件路径,只是用这种最基础的方式来写
C++ 头文件已经防止重定义了,但是还是出现了错误
test.cpp: #include"head.h" int i=3; main.cpp #include"head.h" #include<iostream> using namespace std; extern int i; int main(){ cout << i<< endl; system("pause"); return 0; } head.h #ifndef _HEAD_H_ #define _HEAD_H_ int ab = 0; #endif 这个项目出现了重定义的问题,不知道为什么?求解答
Android NDk 怎么编译时动态链接第三方so库,有头文件
最近在做一个项目,大神把底层的算法封装成so(普通的c++函数),并给出头文件,我需要先 进行封装,然后给java调用。在我写的C++(符合JNI规范)里面调用so库函数, 下面贴图求解答: 1.项目的目录结构 ![图片说明](https://img-ask.csdn.net/upload/201512/09/1449650952_279016.png) 其中 libvvw.so就是第三方库; Test_vvw.h就是第三方库的头文件 2.java 的native方法定义 ![图片说明](https://img-ask.csdn.net/upload/201512/09/1449651054_89245.png) 3.native的实现方法体 FrameDecode.cpp文件 ![图片说明](https://img-ask.csdn.net/upload/201512/09/1449651104_378817.png) 4.Android.mk文件 ![图片说明](https://img-ask.csdn.net/upload/201512/09/1449654849_188618.png) 进行编译时 怎样动态链接so,我总是遇到![图片说明](https://img-ask.csdn.net/upload/201512/09/1449648769_631416.png)错误,求解答,非常感谢
c++友元函数重载<<运算符后还是无法访问类私有变量。求大神解答
#ifndef A_H_ #define A_H_ class Stonewt { private: enum { Lbs_per_stn = 14 }; enum Mode { Stone, IntPounds, FloatPounds }; Mode m_mode; int mm_stone; double m_left_pbs; double m_pounds; public: Stonewt(); Stonewt(double weight, Mode mode); ~Stonewt(); friend Stonewt operator +(Stonewt& temp1, Stonewt& temp2); friend ostream& operator <<(ostream& os, Stonewt& temp); }; #endif //以上为头文件 #include<iostream> #include"标头.h" using namespace std; Stonewt::Stonewt() { mm_stone = 0; m_left_pbs = 0; m_pounds = 0; } Stonewt::Stonewt(double weight, Mode mode) { m_mode = mode; if (m_mode == Stone) { mm_stone = weight; m_left_pbs = 0; m_pounds = weight*Lbs_per_stn; } else if (m_mode == IntPounds) { mm_stone = (int)weight / Lbs_per_stn; m_left_pbs = (int)weight%Lbs_per_stn; m_pounds = (int)weight*Lbs_per_stn; } else if (m_mode == FloatPounds) { mm_stone = weight / Lbs_per_stn; m_left_pbs = (int)weight%Lbs_per_stn + weight - int(weight); m_pounds = weight*Lbs_per_stn; } else { cout << "模式错误\n"; mm_stone = 0; m_left_pbs = 0; m_pounds = 0; } } Stonewt::~Stonewt() { } Stonewt operator +(Stonewt& temp1, Stonewt& temp2) { Stonewt temp; temp.mm_stone = temp1.mm_stone + temp2.mm_stone; return temp; } ostream& operator<<(ostream& os, Stonewt& temp) { os << "英石:" << temp.mm_stone << " 磅:" << temp.m_left_pbs << endl << "总英石:" << temp.m_pounds << endl; return os; } //以上为类实现文件 在最后一个operator函数中无法访问 temp.mm_stone;temp.m_left_pbs; temp.m_pounds 。但是把类的定义和类方法写在同一个文件上却不抱错不知道为什么,我用的VA2015![图片说明](https://img-ask.csdn.net/upload/201710/01/1506833609_421846.png)
VS 2010 中为什么总时提是floor函数未定义?
![图片说明](https://img-ask.csdn.net/upload/201811/09/1541725486_300630.jpg) 如图,同样的代码,在同样的开发环境写的,在手机端C++ APP 中代码完全可行,在PC端庄的VS 2010中运行就总是提是上图的信息,告诉我floor函数调用不明确,已经在头文件中声明了<math.h>,但还是这个样子,求高手解答,是我安装时出现的问题还是其他什么问题?PC端的操作系统是win 10
用c++读取文件内容时遇到的问题,跪求解答~~
#include <iostream> #include <string> #include "sale.h" using namespace std; int main() { int iFlag=1; //循环是否结束的标志 int iOrder; string account,password; // char *account,*password;//定义账号密码 cout<<"*******1.管理员登录*******"<<endl; cout<<"*******2.销售经理登录*****"<<endl; cout<<"*******3.销售员登录*******"<<endl; cout<<"Please input the order:"; cin>>iOrder; switch(iOrder){ //管理员的操作 case 1:{ while(iFlag){ string saleMagAcnt,saleMagPswd; Manager manager; cout<<"Please input the account:"<<endl; cin>>account; cout<<"Please input the password:"<<endl; cin>>password; if(account.compare(manager.getAccount())==0&&password.compare(manager.getPassword())==0){ int nFlag=1; while(nFlag){ //int nOrder=0; manager.printOrder(); cout<<"Please input the order:"; cin>>iOrder; switch(iOrder){ case 1:{ manager.setSaleManagerAccount(); //设置销售经理账号 } break; //break 放到里边和外边的区别 case 2:{ manager.setSaleManAccount( ); //设置销售员账号 } break; case 3:{ manager.deleteAccont(); //删除帐号信息 } break; case 4:{manager.print(); } break; case 5:{ manager.printOrder(); //打印指令 } break; case 6:{ manager.initial(); //初始化 } break; case 0:{ nFlag=0; //退出系统 } break; } } iFlag=0; } else { cout<<"account or password wrong! Please input again!"<<endl; //缺少一个可以循环输入的while循环 } } } break; //销售经理的操作 case 2:{ } break; //销售员的操作 case 3:{ } break; } return 0; } #ifndef SALE_H_INCLUDED #define SALE_H_INCLUDED #include <string> using namespace std; struct saleData{ //销售物品的结构体 int number; char saleName[40]; long balance; double price; }; struct salesAccont{ //销售账户结构体 string account,password; }; //空标志记录 class Manager{ //管理员类 private: string account, password; //¹ÜÀíÔ±Õ˺ÅÃÜÂë string saleMagAcnt,saleMagPwd; public: Manager(); string getAccount(); string getPassword(); void printOrder(); //打印指令 void setSaleManagerAccount();//设置销售经理账号 void setSaleManAccount( );//设置销售员账号 void deleteAccont(); //删除账户 void changeMsg(); void initial(); //初始化文件 int print(); int endMark(salesAccont sl); }; class SalesManager{ //销售经理类 }; class SalesMan{ //销售员类 }; #endif // SALE_H_INCLUDED #include <iostream> #include "sale.h" #include <fstream> salesAccont mark={"NULL","NULL"}; Manager::Manager(){ account="manager01"; password="gk2001"; } string Manager::getAccount(){ return account; } string Manager::getPassword(){ return password; } //打印指令 void Manager::printOrder(){ cout<<"*****1.创建销售经理用户*****"<<endl; cout<<"*****2.创建销售员用户*******"<<endl; cout<<"*****3.删除用户信息*********"<<endl; cout<<"*****4.修改用户信息*********"<<endl; cout<<"*****5.重新显示指令*********"<<endl; cout<<"*****6.初始化文件***********"<<endl; cout<<"*****0.退出销售系统*********"<<endl; } //设置销售经理账号 void Manager::setSaleManagerAccount(){ salesAccont sl; fstream slMngr("../saleSystem/salesaccount.dat",ios::out|ios::binary); //只能有out,否则打开文件失败 if(!slMngr){ cout<<"文件打开失败!"<<endl; return; } //slMngr.seekg(0,ios::beg);//将指针移到文件头 /*do{ slMngr.read((char*)&sl,sizeof(salesAccont)); }while(!endMark(sl)); slMngr.seekp(-long(sizeof(salesAccont)),ios::cur);*/ while(true){ cout<<"请输入销售经理账号:"; cin>>sl.account; cout<<"请输入密码:"; cin>>sl.password; if(sl.account=="NULL"|| sl.account=="null") break; slMngr.write((char*)&sl,sizeof(salesAccont)); //加入账号= } slMngr.close(); } //设置销售员账号 void Manager::setSaleManAccount(){ salesAccont sl; fstream slMn; slMn.open("../saleSystem/salesaccount.dat",ios::out|ios::binary); if(!slMn){ cout<<"文件打开失败!"<<endl; return; } // slMn.seekg(0,ios::beg);//将指针移到文件头 /* do{ slMngr.read((char*)&sl,sizeof(salesMangerAcnt)); }while(!endMark(sl));*/ cout<<"请输入销售员账号:"; cin>>sl.account; cout<<"请输入密码:"; cin>>sl.password; slMn.write((char*)&sl,sizeof(salesAccont)); //加入账号= slMn.write((char*)&mark,sizeof(salesAccont)); slMn.close(); } //删除成员信息 void Manager::deleteAccont(){ string key; cout<<"please input the account you want to delete:"; cin>>key; salesAccont sl; fstream f1("../saleSystem/salesaccount.dat",ios::in|ios::out|ios::binary); f1.seekg(0,ios::beg); do{ f1.read((char*)&sl,sizeof(salesAccont)); if(sl.account!=key) f1.write("../saleSystem/salesaccount1.dat",sizeof(salesAccont)); }while(endMark(sl)); if(sl.account!=key) cout<<"没有此帐号"<<endl; f1.close(); } //初始化文件 void Manager::initial(){ fstream fdat("../saleSystem/salesaccount.dat",ios::out|ios::binary); cout<<"若文件存在,还需要初始化吗?(Y/N):"; char answer; cin>>answer; if(answer=='Y'||answer=='y'){ fdat.seekg(0,ios::beg); fdat.write((char*)&mark,sizeof(salesAccont)); cout<<"文件已经初始化。"<<endl; } else cout<<"取消操作"<<endl; fdat.close(); } /*istream_iterator<string>ii(f1); istream_iterator<string> eos; vector<string>b (ii,eos); //将文件的内容存入容器中 vector<string>::iterator it; //使用迭代器 for(it = b.begin() ; it<b.end();it++) { if(key == *it) { *it = ""; //如果找到要删除的内容,将对应的迭代器内容清空 } } ofstream wr(f1,ios::out); for(it=b.begin() ; it<b.end();it++) //重新写回文件 { wr << *it <<endl; cout << *it<< endl; } }*/ //打印出文件的内容 测试文件的输出 int Manager::print(){ salesAccont sl; fstream f1("../saleSystem/salesaccount.dat",ios::in|ios::binary); if(f1.eof()){ cout<<"文件打开失败!"; return 0; } /* f1.seekg(0,ios::beg);//将指针移到文件头 // int i=0; do{ f1.read((char *)&sl,sizeof(salesAccont)); if(endMark(sl)) cout<<sl.account<<endl; // i++; }while(endMark(sl));//while(i<3);*/ while(true){ f1.read((char*)&sl,sizeof(salesAccont)); if(f1.eof()) break; cout<<sl.account<<endl; } f1.close(); } int Manager::endMark(salesAccont sl){ //判断是否读到文件末尾 if(sl.account!="NULL") return 1; return 0; } void Manager::changeMsg(){ string key; cout<<"please input the account you want to delete:"; cin>>key; salesAccont sl; fstream f1("../saleSystem/salesaccount.dat",ios::in|ios::out|ios::binary); /* f1.seekg(0,ios::beg); do{ f1.read((char*)&sl,sizeof(salesAccont)); if(sl.account==key){ cout<<"请输入修改后的账号:"; cin>>sl.account; cout<<"请输入修改后的密码:"; cin>>sl.password; f1.write("../saleSystem/salesaccount1.dat",sizeof(salesAccont)); } }while(endMark(sl));*/ }
C++模板,我不太懂里面& 字符啥意思(能帮忙分析这段代码吗?)
下面是我在《软件技术基础》里面看到的一部分内容,其中我不明白的地方就是 & 字符所在的地方 比如: Matrix<T, m, n>& Matrix<T, m, n>:: operator– (Matrix<T, m, n>& x) 在此先谢谢大家帮忙解答了 8.2.2 矢量和矩阵的模板 由上述定义可知,矢量就是数的线性排列,序列就是它们最自然的表示方式。矩阵又可视为矢量的线性集合,所以可用序列的数组表示。下面就是矢量和矩阵的模板: 矢量模板:以下为定义矢量模板的头文件 vector.h 中的全部内容。 // vector.h (可从光盘的对应章节中下载) template <class T, int n > class Vector { public: Vector() { size = n; }; int Size() { return size; }; T& operator[ ](int j) { return element[j]; }; Vector& operator +(Vector&); Vector& operator – (Vector&); private: T element[n]; int size; }; // 数学上,矢量相加就是对应元素相加 template <class T, int n> Vector<T, n>& Vector<T, n>:: operator+(Vector<T, n>& v) { for (int i=0; i< size; i++) element[i] = element[i] + v.element[i]; return *this; }; // 数学上,矢量相减就是对应元素相减 template <class T, int n> Vector<T, n>& Vector<T, n>:: operator-(Vector<T, n>& v) { for (int i=0; i < size; i++) element[i] = element[i] – v.element[i]; return *this; }; 矩阵模板:以下为定义矩阵模板的头文件 matrix.h 中的内容 // matrix.h (可从光盘的对应章节中下载) # include "vector.h" template <class T, int m, int n> class Matrix { public: Matrix() { size = m; }; Vector<T, n>& operator[ ](int i) { return column[i];}; Matrix& operator +(Matrix&); Matrix& operator –(Matrix&); int Row() { return column[0].Size ( ); }; int Size() { return size; } protected: // 将矩阵定义为列矢量的序列, Vector<T, n> column[m]; int size; }; // 矩阵相加就是对应列矢量相加 template <class T, int m, int n> Matrix<T, m, n>& Matrix<T, m, n>:: operator+(Matrix<T, m, n>& x) { for (int i = 0; i < size; i++) column[i] = column[i] + x.column[i]; return *this; }; // 矩阵相减就是对应列矢量相减 template <class T, int m, int n> Matrix<T, m, n>& Matrix<T, m, n>:: operator– (Matrix<T, m, n>& x) { for (int i = 0; i < size; i++) column[i] = column[i] - x.column[i]; return *this; };
c++vector排序问题,学生党一枚 求解答
//**************************************** //*train.h类声明头文件 //**************************************** #ifndef train_h_ #define train_h_ #include<string> using namespace std; class Train { protected: string num; string ssta;//发站 string asta;//到站 string stime;//发时 string atime;//到时 string time;//历时 public: bool Set_num(string ); //设置信息 bool Set_ssta(string ); bool Set_asta(string ); bool Set_stime(string ); bool Set_atime(string ); bool Set_time(string ); string Get_num( ); //获取信息 string Get_ssta( ); string Get_asta( ); string Get_stime( ); string Get_atime( ); string Get_time( ); }; #endif //***************************************** //*train.cpp类方法定义文件 //***************************************** #include"train.h" bool Train::Set_num( string n ) { num = n; return true; } bool Train::Set_ssta(string ss ) { ssta = ss; return true; } bool Train::Set_asta(string as ) { asta = as; return true; } bool Train::Set_stime(string st ) { stime = st; return true; } bool Train::Set_atime(string as ) { atime = as; return true; } bool Train::Set_time(string t) { time = t; return true; } string Train::Get_num( ) { return num; } string Train::Get_ssta( ) { return ssta; } string Train::Get_asta( ) { return asta; } string Train::Get_stime( ) { return stime; } string Train::Get_atime( ) { return atime; } string Train::Get_time( ) { return time; } //***************************************** //*main.cpp系统主文件 //***************************************** #include<iostream> #include<string> #include<vector> #include<algorithm> #include<fstream> #include<iomanip> #include"train.h" #define NULL 0 string infilenum = "Num.txt"; string infileinfo= "Info.txt"; vector<Train>card; using namespace std; Train * Creat( ) //添加信息 { Train *temp; string info; temp =new Train; cout << "车 次 : "; cin >> info; temp ->Set_num(info); cout << "发 站 : "; cin >> info; temp ->Set_ssta(info); cout << "到 站 : "; cin >> info; temp ->Set_asta(info); cout << "发 时 : "; cin >> info; temp ->Set_stime(info); cout << "到 时 : "; cin >> info; temp ->Set_atime(info); cout << "历 时 : "; cin >> info; temp ->Set_time(info); cout<<endl<<"添加成功 O(∩_∩)O~"<<endl<<endl; return temp; } Train * Search_num( )// 按照车次查找 { int i = 1; string tempnum; cin >> tempnum; Train * temp; temp = card.begin( ); while( i <= card.size( ) ) { if( temp-> Get_num( ) == tempnum ) { return temp; } temp ++; i ++; } return NULL; } Train * Search_sta( ) // 按照到站查找 { int i = 1; string tempsta; cout << "请输入要查找的到站 : " ; cin >> tempsta; Train * temp; temp = card.begin( ); while( i <= card.size( ) ) { if( temp-> Get_asta( ) == tempsta ) { return temp; } temp++; i++; } return NULL; } void Show( Train * temp ) // 显示信息 { cout<<setw( 10 ) << "车 次 : " << temp->Get_num( )<<endl; cout<<setw( 10 ) << "发 站 : " << temp->Get_ssta( )<<endl; cout<<setw( 10 ) << "到 站 : " << temp->Get_asta( )<<endl; cout<<setw( 10 ) << "发 时 : " << temp->Get_stime( )<<endl; cout<<setw( 10 ) << "到 时 : " << temp->Get_atime( )<<endl; cout<<setw( 10 ) << "历 时 : " << temp->Get_time( )<<endl; cout<<endl; } void Save( ) //保存信息(从容器到文件) { int i = 1; Train * temp; temp = card.begin( ); ofstream os( infileinfo.c_str( ), ios_base::trunc); //文件操作 while( i <= card.size( ) ) { os << temp->Get_num() <<" "<< temp->Get_ssta() <<" "<< temp->Get_asta()<<" "<< temp->Get_stime()<<" "<< temp->Get_atime()<<" "<< temp->Get_time()<<" "; temp++; i++; } os.close( ); ofstream is(infilenum.c_str(), ios_base::trunc ); is<< --i; is.close( ); cout<<endl<<"保存成功 O(∩_∩)O~"<<endl; } void Read( ) //文件操作(从文件到容器) { int i= 1,m; Train * temp; string num1,ssta1,asta1,stime1,atime1,time1; ifstream is( infilenum.c_str( ) ); is>>m; is.close(); ifstream os(infileinfo.c_str( ) ); while (i <= m) { temp = new Train; os>>num1>>ssta1>>asta1>>stime1>>atime1>>time1; temp -> Set_num(num1); temp -> Set_ssta(ssta1); temp -> Set_asta(asta1); temp -> Set_stime(stime1); temp -> Set_atime(atime1); temp -> Set_time(time1); card.push_back(* temp); i++; } cout<<endl; os.close(); } void Delete( ) //删除容器中信息 { Train * temp1; temp1 = Search_num(); //按车次查找要删除的信息 if( temp1 != NULL) { card.erase(temp1); cout<<endl<<"删除成功 O(∩_∩)O~"<<endl; } } int main( ) { int i; char index = '0'; Train *temp; card.reserve(20); Read(); index = 1; while(index != '0') { cout<<endl; cout<<"********列车车次信息的查询与检索系统********"<<endl; cout<<setw(25)<<"1. 浏览"<<endl; cout<<setw(25)<<"2. 添加"<<endl; cout<<setw(25)<<"3. 查询"<<endl; cout<<setw(25)<<"4. 修改"<<endl; cout<<setw(25)<<"5. 删除"<<endl; cout<<setw(25)<<"0. 退出"<<endl;cout<<"********************************************"<<endl; cout<<endl; cout<<"请输入操作序号 (*^__^*)"<<endl; cin>>index; switch(index) { case '1': //浏览 { temp = card.begin( ); if( card.size() == 0 ) cout<<endl<<"暂无车次信息 ╮(╯_╰)╭"<<endl; else { i = 1; cout<<endl<<"车次信息如下 : "<<endl; while(i <= card.size() ) { cout<<endl; cout<<setw(10)<<"编 号 : "<< i++<<endl; Show(temp); temp++; } } break; } case '2': //添加到容器 { if( card.size() <= card.max_size( ) ) { cout << endl << "请输入车次信息 : "<<endl; temp = Creat( ); card.push_back( *temp ); } else { cout << endl << "请输入车次信息 : "<<endl; card.reserve(10); temp = Creat( ); card.push_back(*temp); } break; } case '3': //查询 { cout<<endl; cout<<setw(12)<<"1. 按车次查询"<<endl; cout<<setw(12)<<"2. 按到站查询"<<endl; char in='0'; cin>> in; switch(in) { case '1': //按车次查询 {cout << endl << "请输入车次信息 : "; temp = Search_num(); if(temp != NULL) { cout<<endl<<"所查车次信息如下 : "<<endl; Show(temp); break; } else cout<<"没有您要查找的信息 ╮(╯_╰)╭"<<endl; break; } case '2': //按到站查询 { temp = Search_sta(); if(temp != NULL) { cout<<endl<<"所查车次信息如下 : "<<endl; Show(temp); break; } else cout<<"没有您要查找的信息"<<endl; break; } default: { cout<<"出错了 ╮(╯_╰)╭"<<endl; break; } } break; } case '4': //修改容器信息 { cout << endl << "请输入要修改的车次 : "; temp = Search_num(); Show(temp); if( temp != NULL) { card.erase(temp); } cout<<"请修改信息 : "<<endl; if(card.size() <= card.max_size() ) { temp = Creat(); card.push_back( *temp); } else { card.reserve(10); temp = Creat( ); card.push_back(*temp); } break; } case '5': //删除容器信息 { cout<<"请输入要删除的车次 : "; Delete(); break; } case '0': //退出 { cout<<"是否保存信息?(y/n)"<<endl; char x; do { cin>> x; switch( x ) { case 'y': Save(); break; case 'n': cout<<"未保存所做的修改"<<endl; break; default: cout<<"输入有误 ╮(╯_╰)╭ 请重新输入 "<<endl; break; } }while( x!='y' && x!= 'n'); cout<<endl<<"感谢您的使用,再见 O(∩_∩)O~"<<endl<<endl; break; } default: cout<<endl<<"出错了 ╮(╯_╰)╭"<<endl; } } return 0; } 如何实现车次大小 由小到大排序 谢谢 学生党一枚
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
进程通信方式总结与盘点
​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只可操作少量的...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
入职阿里5年,他如何破解“技术债”?
简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: “先快速上线” “没时间改” “再缓一缓吧” “以后再解决” “先用临时方案处理” …… 当你埋下的坑越来越多,不知道哪天哪位同学就会踩上一颗雷。特别赞同“人最大的恐惧就是未知,当技术债可说不可见的时候,才是最让人不想解决的时候。” 作为一个程序员,我们反对复制粘贴,但是我们经常会见到相似的代码,相同的二方包,甚至整个代码...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:【程序员管小亮】 专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
你也能看懂的:蒙特卡罗方法
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或...
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
JAVA后端面试《Spring》
Spring1.Spring是什么?有什么好处?2.IOC是什么?有什么好处?具体过程?3.DI是什么?4.IOC和DI的关系?5.bean标签的属性有哪些?6.IOC创建对象有哪几种方式?7.Spring是如何实现IOC的?也就是如何创建对象的? 1.Spring是什么?有什么好处? 概念: SPring是一个支持控制反转(IOC)和面向切面编程(AOP)的容器框架。 好处: 两降低&gt;&...
AI 医生“战疫”在前线
作者| Just出品|CSDN(CSDNnews)紧急驰援疫区,AI医生也出动了。截止到2月6日,随着新冠病毒肺炎疫情的不断发展,全国累计已有31161例确诊病例,26359例疑...
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计...
用Python爬取新型冠状病毒肺炎实时数据,pyecharts v1.x绘制省市区疫情地图
文章目录运行结果(2020-2-8数据)基本方案数据格式全国疫情地图实现福建省疫情地图实现福州市疫情地图实现其他 运行结果(2020-2-8数据) 基本方案 web请求用requests 网页内容解析用pyquery、beautifulsoup和正则表达式 地图用pyecharts v1.6.2 数据来源 全国数据来源于腾讯实时疫情动态,直接get到json 福州市数据来源于福建省疾病预...
MySQL基础笔记
如有错误,恳请告知。非常感谢! 环境(相关下载、配置): phpstudy7.0.9 Apache2.4.39 MySQL5.7.26 phpMyAdmin4.8.5 此文在Windows10下实验并且假设以上环境均准备好。 如何打开安装好的MySQL命令行? 如下图所示。打开phpstudy的安装目录,打开Extensions目录,打开MySQL5.7.26文件,打开bin文件,在上方的路径...
HTML5适合的情人节礼物有纪念日期功能
前言 利用HTML5,css,js实现爱心树 以及 纪念日期的功能 网页有播放音乐功能 以及打字倾诉感情的画面,非常适合情人节送给女朋友 具体的HTML代码 具体只要修改代码里面的男某某和女某某 文字段也可自行修改,还有代码下半部分的JS代码需要修改一下起始日期 注意月份为0~11月 也就是月份需要减一。 当然只有一部分HTML和JS代码不够运行的,文章最下面还附加了完整代码的下载地址 &lt;!...
JVM 调优命令&工具使用
top命令查看进程占用资源情况 jps 命令 查看 java进程 jstack 命令 关注WATTING 查看死锁问题 jstat -gc pid 查看 GC 情况 jinfo pid 查看 jvm 常用信息 arthas [推荐] 安装&amp;启动 使用 jmap 命令 [生产环境慎用! 会造成生产环境卡顿!!!!] 使用jvisualvm 进行查看 d...
Python基础知识入门(二)
4 容器类型 容器深层含义自己不知道,但是就表面意思。我自己理解的容器就是容器。他就是一个可以装“东西”的罐子啥的。不同的“罐子”可以装的“东西”不同,就像酒杯装酒,茶杯装茶,水缸装水。酒杯、茶杯、水缸就是不同的容器。酒、茶、水就是不同的东西。而在python中列表、元组,序列、集合、字典就是不同的容器。他们都有不同的装法,装不同的东西。。。。 1 数组[^1] 一堆数据类型相同的数据元素的集合...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问