我是C ++和编程的新手。我很感激在C或C ++中对动态数组大小的帮助。
ex: - 我需要将值存储到数组中。 (价值可以改变)
设置1:0,1,2,3
设置2: - 0,1,2,3,4
设置3: - 0,1
设置4: - 0
所以我希望他们在数组处理中存储set one的值然后将set 2存储在同一个数组中,依此类推???
请回复,
谢谢
答案 0 :(得分:9)
C ++中的动态数组称为std::vector<T>
,其中T替换为您要存储在其中的类型。
您还必须将#include <vector>
放在程序的顶部。
e.g。
#include <vector> // instruct the compiler to recognize std::vector
void your_function(std::vector<int> v)
{
// Do whatever you want here
}
int main()
{
std::vector<int> v; // a dynamic array of ints, empty for now
v.push_back(0); // add 0 at the end (back side) of the array
v.push_back(1); // add 1 at the end (back side) of the array
v.push_back(2); // etc...
v.push_back(3);
your_function(v); // do something with v = {0, 1, 2, 3}
v.clear(); // make v empty again
v.push_back(10);
v.push_back(11);
your_function(v); // do something with v = {10, 11}
}
请注意更有经验的程序员:是的,这里可以改进很多东西(例如const引用),但我担心这只会让初级程序员感到困惑。
答案 1 :(得分:4)
您可以使用std::vector
:
Vector容器实现为动态数组;与常规数组一样,向量容器将其元素存储在连续的存储位置,这意味着它们的元素不仅可以使用迭代器访问,还可以使用常规指向元素的偏移量来访问。
答案 2 :(得分:4)
好像你想要一个std::vector<int>。
答案 3 :(得分:1)
您的问题并不完全清楚,但听起来好像您从一组数据开始,在该组上执行一些生成另一组的任务,一个使用新组的任务并创建另一组?
如果是这种情况,您可能想了解swap
。
e.g。
int main(void)
{
std::vector<int> inputs, outputs;
// push_back something into inputs
// perform some task 1 on inputs which fills in outputs
inputs.swap(outputs); // now the outputs of task 1 have become the inputs of task 2
outputs.clear();
// perform some task 2 on inputs which fills in outputs
inputs.swap(outputs); // now the outputs of task 2 have become the inputs of task 3
outputs.clear();
// perform some task 3 and so on
return 0;
}