如何将向量变量传递给函数?

时间:2011-02-04 08:12:42

标签: c++ function vector arguments

  

可能重复:
  How can I pass a vector variable to a function?

我有以下代码:

std::vector <const char*> value;
value[0] = buf.c_str();

// Now I have to pass the vector variable to function.
// Function declaration: int my_function(const char *)
my_function(value[0]);

但是,我收到了这个错误:

  

错误:无法将参数'1'的'std::vector<char*, std::allocator<char*> >'转换为'const char*'到'int my_function(const void*)'

你能帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

类似的东西:

typedef std::vector<std::string> myvec;

void func(myvec &vec){

 //use vec
}


main.cpp:

myvec vec;

func(vec);

答案 1 :(得分:0)

您的函数被定义为采用const void *参数,而不是const char *参数(根据编译器的错误消息)。更改声明和定义,您应该没问题,或者您可以值转换为const void *

答案 2 :(得分:0)

唯一安全的方法是在函数中接收std :: vector。在大多数编译器上,您可以通过

将其作为char数组发送
$(vec[0])

正如我所说,这不安全,因为标准并没有说向量需要在连续的内存中,但是再次,mot编译器将向量放在连续的内存中。

相关问题