从标准模板库我开始了解istream和ostream迭代器.我无法理解它们是如何工作的.
我也不明白他们为什么被使用.它们为什么有用?
为某些数据分配内存有什么好处.相反,我们可以使用它们的数组.
喜欢
int *lis;
lis = (int*) malloc ( sizeof( int ) * n );
/* Initialize LIS values for all indexes */
for ( i = 0; i < n; i++ )
lis[i] = 1;
Run Code Online (Sandbox Code Playgroud)
我们可以使用普通的数组.
好吧,我不明白malloc是如何工作的,实际上是做什么的.所以解释它们对我来说会更有益.
假设我们sizeof(int) * n只n用上面的代码替换然后尝试存储整数值,我可能面临哪些问题?有没有办法直接从内存分配空间打印存储在变量中的值,例如这里是lis?
我在我的代码中使用向量和向量size_type.
#include <iostream>
#include <vector>
using namespace std;
using std::vector;
typedef vector<int>::size_type size_type;
int main()
{
size_type n;
cin>>n;
vector<int> u(n,0);
for(size_type i = 0; i != n; ++i) {
cin >> u[i];
}
cout << *u.end();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误是当我输入n = 5时.向量请求5个元素,然后输出0或一些垃圾值.如何打印最后一个元素?