Mon*_*que 1 c++ struct iterator vector
我正在尝试使用矢量迭代器打印出矢量中的所有元素.我查了类似的问题,但发布的解决方案似乎对我不起作用.这是代码:
void printPerms()
{
for(vector<process>::iterator it = allProcesses.begin(); it != allProcesses.end(); it++)
{
for(int i = 0; i < numResourceTypes; i++)
{
cout << (static_cast<process*>(*it).need) << (static_cast<process>(*it)).allocated <<endl;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误,我不知道如何修复:
error C2440: 'static_cast' : cannot convert from 'process' to 'process *' No user
defined-conversion operator available that can perform this conversion, or the operator
cannot be called
error C2228: left of '.need' must have class/struct/union
Run Code Online (Sandbox Code Playgroud)
尝试...
void printPerms()
{
for(vector<process>::iterator it = allProcesses.begin(); it != allProcesses.end(); it++)
{
for(int i = 0; i < numResourceTypes; i++)
{
cout << it->need << it->allocated << endl;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道到底出了什么问题,也不知道为什么需要使用static_cast,但是无论使用哪个->运算符,您都应该能够访问这些成员变量.
取消引用迭代器会为您提供其值(在本例中为process),而不需要强制转换.
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |