C C++ leetcode 总是说编译错误,关键我连第77行都没有,只有那么几行……
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C C++ leetcode 总是说编译错误,关键我连第77行都没有,只有那么几行……相关的知识,希望对你有一定的参考价值。
Line 77: redefinition of 'int main()'
int main(void)
vector <int> numbers;
int number;
while(cin >> number)
numbers.push_back(number);
cin.clear();
int target;
cin >> target;
Solution s;
vector<int> result;
result = s.twoSum(numbers,target);
vector<int>::iterator it = result.begin();
for(;it != result.end();++it)
cout<<*it<<endl;
需要你构造一个Solution的类
77行redefine的main恰好就是leetcode用来测试你写的Solution的main函数 参考技术A 为什么你贴的图片里面有return 0; 而贴出来的代码没有 参考技术B 是不是你的项目中有多个main函数啊(其他cpp文件中) 参考技术C 好像不是完整的代码,Solution 是自定义的类 参考技术D 你好
修改你主函数的类型追问
谢谢。可否具体些?
追答把你的主函数,发出来看看
追问追问字数有限制,只能评论了
C,C+和C++它们有什么区别
只有C语言和C++语言,没有C+语言。1、出现时间不同
C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。
例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。
2、C程序可以省略函数原型,而C++不可以
一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数(C中没有字符串类型)。
C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。
3、关键字和变量不同
在C++中还增加了bool型变量和wchar_t型变量:布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量。
那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。
C++中还包括wchar_tt数据类型,wchar_t也是字符类型,但是是那些宽度超过8位的数据类型。许多外文字符集所含的数目超过256个,char字符类型无法完全囊括。wchar_t数据类型一般为16位。
标准C++的iostream类库中包括了可以支持宽字符的类和对象。用wout替代cout即可。
4、强制类型转换不同
有时候,根据表达式的需要,某个数据需要被当成另外的数据类型来处理,这时,就需要强制编译器把变量或常数由声明时的类型转换成需要的类型。为此,就要使用强制类型转换说明,格式如下:int iptr=(int) &table;
表达式的前缀(int*)就是传统C风格的强制类型转换说明(typecast),又可称为强制转换说明(cast)。强制转换说明告诉编译器把表达式转换成指定的类型。
有些情况下强制转换是禁用的,例如不能把一个结构类型转换成其他任何类型。数字类型和数字类型、指针和指针之间可以相互转换。当然,数字类型和指针类型也可以相互转换,但通常认为这样做是不安全而且也是没必要的。强制类型转换可以避免编译器的警告。
5、函数重载
在C++中,允许有相同的函数名,不过它们的参数类型不能完全相同,这样这些函数就可以相互区别开来。而这在C语言中是不允许的。
参考资料来源:百度百科-C++
以上是关于C C++ leetcode 总是说编译错误,关键我连第77行都没有,只有那么几行……的主要内容,如果未能解决你的问题,请参考以下文章