是否可以在main中返回向量
Is it okay to return vector in main
我想知道在main()
中返回向量可以吗?例如
aSpecialVectorType main()
{
aSpecialVectorType xxx(vector::zero);
// do something here;
return xxx;
}
我需要在main()
之前转发声明"class aSpecialVectorType;
"吗?
顺便说一句,在 c++ 中使用"main
"以外的其他名称是否合法?
谢谢
编辑1:
如果没有,它可以输出向量的最佳方式是什么?
我的朋友让我给他一个可以作为"向量输入和向量输出"的黑盒,他会用他的 matlab 代码来调用我的代码。这就是我问的原因。我知道如何向量,但不确定是否有一种简单的方法来输出向量。
谢谢
编辑2:
我很惊讶为什么C++有这样的标准,有什么解释吗?:)
在C++中,main
需要返回一个int
:
C++标准,3.6.1.2:
实现不应预定义主函数。此函数不得重载。它应该有一个类型
int
的返回类型,但除此之外,它的类型是实现定义的。
.
如果没有,它可以输出向量的最佳方式是什么?
要输出矢量,您需要将其复制到文件或输出流:
ostream_iterator<int> out_it(cout, ", ");
copy(myvector.begin(), myvector.end(), out_it);
上面的代码片段将vector<int>
的内容写入标准输出。
No.必须通过以下两种方式之一声明 main:
int main()
或
int main(int argc, char*[] argv)
除此之外的任何内容都不是标准的。
No.
根据标准main()
必须返回一个int
,并且仅此而已。
No.
main
必须返回int
.
函数可以自由地使用其他名称并返回它们想要的任何内容。
为了扩展dashblinkenlight的答案,以下是两个程序的通信方式。 不是通过一个捕获另一个程序的返回值,而是通过称为"管道"的过程,将一个程序的标准输出定向到另一个程序的标准输入。 在这里,我将在一个程序中打印出字符串列表,然后另一个程序将期望在其标准输入上显示字符串列表,然后我将向您展示如何同时使用两者:
// Output program
#include <vector>
#include <string>
#include <iostream>
int main()
{
using namespace std;
vector<string> v;
v.push_back("one");
v.push_back("two");
v.push_back("three");
for (int i=0; i<v.size(); ++i)
cout << v[i] << 'n';
}
// input program
#include <iostream>
#include <vector>
#include <string>
int main()
{
using namespace std;
vector<string> v;
for (string tmp; cin >> tmp; )
v.push_back(tmp);
// print the strings in reverse order
for (int i=v.size()-1; i>=0; --i)
cout << v[i] << 'n';
}
如果你自己运行第一个程序,它只会打印出 3 个字符串。 如果单独运行第二个程序,它将提示用户输入字符串,直到他使用终止命令。 但是在所有使用最广泛的操作系统上,您可以将两者链接在一起。 然后第一个的输出将成为第二个的输入。 在类Unix系统上,你可以这样做:
./output_program | ./input_program
在Windows上,我认为它是相同的,或者非常相似。 不过不知道。
你第一个问题的答案是否定的。第二个问题的答案是肯定的,但您需要指定可执行文件入口点的名称(通过链接器设置...可能并非在所有链接器工具上都可用)。
以下陈述是错误的请参阅下面的本的评论。有用的信息。
请注意,尽管入口点的名称可以更改,但它必须符合标准参数和返回类型。
- 如何返回向量的常量引用?
- 如何在C++中返回向量的从零开始的索引
- 当函数返回C++向量实例时,它正在运行
- 从函数返回向量以打印内容
- 返回向量的单个索引值
- 为什么我不能返回向量<向量<int>>(进程返回 -1073741819 (0xC0000005))
- 返回向量元素的 l 值的正确方法是什么?
- 为什么通过引用返回向量比通过移动返回要快得多?
- 返回向量 C++ 上的递归
- C++ std::find() 寻址返回向量的类函数时的意外行为
- 如何在返回向量中访问系数
- C++ 函数返回向量中最小的正整数
- 查找并将指针返回向量中的对象
- getCompatibleComponent返回向量错误
- 如何从 JNI 返回向量<向量<float>>?
- 为什么下面的代码返回向量大小为 10
- 从函数返回向量时C++中止(核心转储)
- 如何正确地将向量<int>转换为空隙*并返回向量<int>?
- 接口 PTR 的返回向量C++
- C++ cv::Mat 返回向量的<rectangle>线程异步