动态1D阵列作为输入
Dynamic 1D array as input
我试图获得整数的动态1D数组作为输入。情况是,我不知道会有多少输入。我有以下代码,但我知道这是错误的。你能告诉我怎么做吗?
int main(string path,string aligned_path,vector<int>cams)
{
string path = "/home/iiith/resect/output.txt";
findpoints(cams,path);
}
凸轮的大小实际上是未知的。我不知道他们会提供多少摄像头作为输入。我试图实现如下的东西
./a.out path1 path2 1 2 3 5 6
最后的数字将是凸轮。它可以是任意数量的摄像头。是否有可能将它们全部作为输入接收?是否有可能有一个输入参数是动态的如上所述?请帮帮我。那会很有帮助的。
您对main
的定义无效。在C和c++中,main有严格的定义(尽管如果不使用参数可以忽略):
int main(int argc, char **argv)
一个常见的扩展是传入环境变量:
int main(int argc, char **argv, char **envp)
和if参数根本不使用:
int main()
main
的参数定义如下:argc
是参数列表中元素的个数。以下每个argv[0]
..argv[argc-1]
包含函数的参数。argv[0]
是可执行文件本身的名称。argv[1]
与您的例子将是path1
。
所以,你知道有多少基于argc
的cams
。当然,您必须将argv[x]
中的字符串值复制到向量中的相关位置,可能使用std::stoi(...)
将其转换为整数值。
main
的签名必须为int main(int argc, char* argv[])
(或等价的int main()
)。您可以在自己的代码中将参数处理成更有用的东西。下面是一个快速而草率的示例(没有适当的错误处理等)。
#include <iostream>
#include <cstdlib>
#include <vector>
int main(int argc, char * argv[])
{
std::vector<int> nums;
nums.reserve(argc-3);
int pos = 3;
// Read args into vector of ints
while (pos < argc)
{
nums.push_back(atoi(argv[pos]));
++pos;
}
// Print them
for (auto i : nums) std::cout << i << 'n';
}
这里是一个运行:
$ ./a.out path1 path2 1 2 3 5 4
1
2
3
5
4
以防不清楚:argc
包含传递的参数的数量,包括程序的名称。对于$ ./a.out
argc=1
,对于$ ./a.out some list of args
argc=5
。
那么argv
是一个c
风格的字符串数组(以NUL
结尾的const char *
s),包含每个参数的文本。
请注意,严格来说,argv
数组比它需要的长度长1,并且最后一项保证是NULL指针。
对于标准极客,我没有适当的C++
2011标准,这是来自N3337:
3.6.1主要功能
…
2实现不能预定义
main
函数。此函数不得重载。它应该有一个返回类型为int
的类型,否则其类型为实现定义。所有的实现都应该允许main
的定义如下:
int main() { /* ... */ }
和
int main(int argc, char* argv[]) { /* ... */ }
在后一种形式
argc
传递给程序的参数的个数运行程序的环境。如果argc
是非零的参数应在argv[0]
到argv[argc-1]
中作为指向以空结束的多字节的初始字符的指针string (ntmbs s)(17.5.2.1.4.2)和argv[0]
应该是指向NTMBS的初始字符,表示用于的名称调用程序或"。argc
的值不能为负。的"argv[argc]
"的值必须为"0
"。[注:建议任何。argv
后可添加更多(可选)参数。-end note]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 基于用户输入的 2D 动态阵列
- C 程序仅在字符阵列获得“ 1000!”的输入时才在DELETE上崩溃
- 气泡排序问题不会更改输入阵列
- 如何解决非常大的阵列输入的SIGSEGV错误
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格
- 动态分配的输入,并在C 中输出2D阵列
- 严格相同的阵列输入
- 阵列输入在按Enter成为0
- 避免在字符阵列中长时间输入
- 将具有2D阵列输入的函数传递给函数
- CUFFT:当输入是倾斜阵列时,如何计算fft
- CUDA大型输入阵列
- OpenGL顶点阵列,根据用户输入绘制
- 井字游戏覆盖阵列用户输入
- 动态1D阵列作为输入
- 如何将用户输入存储到多维数组中?我正在使用 3D 阵列
- 分割错误:11小输入阵列/矢量
- 从文件读取输入并存储到2D阵列中