【发布时间】:2021-03-26 02:15:06
【问题描述】:
我是 C++ 新手,我正在尝试创建一个 std::vector 数组,但是每当我 push_back 一个新元素时,似乎所有以前的元素都会被我刚刚添加的新值覆盖。 (我需要使用 c++ 默认数组而不是 std::array 或其他容器,因为我需要将它们传递给只接受这些的函数)。
以下代码和输出显示了正在发生的事情的示例:
std::vector<int*> tuples;
for( int i = 0; i < 10; i++ )
{
for( int j = 0; j < 5; j++ )
{
int tuple[] = { i, j };
tuples.push_back( tuple );
}
}
for( int i = 0; i < tuples.size(); i++ )
std::cout << i << " " << tuples[i][0] << " " << tuples[i][1] << std::endl;
【问题讨论】:
-
数组不是指针
-
指针不是数组。尝试将
std::vector<std::array<int ,2> >用于tuples和std::array<int, 2>用于tuple。您可能还想查找std::pair作为std::array<int, 2>的替代品。
标签: c++ arrays pointers vector