c++ - 多维 vector 指针

标签 c++ vector multidimensional-array

我有以下多维 vector

int main()
{
    vector< vector<string> > tempVec;

    someFunction(&tempVec);
}

void someFunction(vector< vector<string> > *temp)
{
    //this does not work
    temp[0]->push_back("hello");
}

当我有一个 vector 指针时,如何将数据推送到 vector 中? 下面的代码不起作用。

    temp[0]->push_back("hello");

最佳答案

你需要

(*temp)[0].push_back("hello")

那是:

  • 取消引用 temp得到 vector<vector<string> > &
  • 获取第一个元素,a vector<string> &
  • 使用.而不是 ->因为你不再处理指针

也就是说,如果 someFunction 会更容易拿了vector< vector<string> >&而不是指针:temp[0].push_back("hello") .引用不允许指针运算或空指针,因此它们更难搞砸,并且更能暗示所需的实际输入类型(单个 vector ,而不是可选的或它们的数组)。

关于c++ - 多维 vector 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293448/

相关文章:

java - 使用 java 或 C++ 更改 mp3 的详细信息

c++ - vector 中的重复元素

php - SQL 查询需要 3D 数组

c++ - 在 C++ 中查找二维数组的行数和列数

C++ 将 5 字节结构与缓存行对齐

c++ - 如何在循环运行时停止以将数据存储在 vector 中

c++ - 预分配内存列表

R如何在列表中找到向量子集的交集

C++ vector 下限和上限检查

javascript - 如何将多维数组从 Java 请求变量复制到 JSP 页面中的 Javascript 变量?