Cou*_*ier -2 c++ memory arrays malloc
创建具有未定义大小的数组的最佳方法是什么?我有数千个需要放入数组的措施.这些值由传感器提供.所以我最后才知道阵列的大小; 当传感器停止发射时.
我这样做
#define MAX_SIZE 100000000
double array[MAX_SIZE]
Run Code Online (Sandbox Code Playgroud)
但是,除了有比MAX_SIZE更多的度量之外,我从编译器获取此错误消息:: R_X86_64_32对.bss'
__static_initialization_and_destruction_0':
是否有一种不具体的方式或强加指针的初始(静态)大小但让它自动增长?
谢谢你的帮助.
在您的情况下,最好的选择是使用STL向量.
#include <iostream>
#include <vector>
using namespace std;
vector<double> v;
int main() {
v.push_back(3.0); // Add an item
v.push_back(5.0);
v.push_back(7.0);
v.push_back(8.0);
cout << "v[0]: " << v[0] << endl; // Access an item
cout << "v[1] + v[2]: " << v[1] + v[2] << endl;
cout << "Size: " << v.size() << endl; // Size
v.resize(2); // It will remove items except for the first two
double sum = 0.0;
vector<double>::iterator it;
it = v.begin();
while (it != v.end())
{
sum += *it;
it++;
}
cout << "Sum: " << sum << endl;
v.resize(0); // It will empty a vector
cout << "Size: " << v.size() << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它是一个动态数组,必要时会自动扩展.您可以通过索引从数组中获取项目,使用迭代器迭代它,清除它或调整大小.
在这里您可以阅读参考资料:http: //www.cplusplus.com/reference/array/array/
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |