【发布时间】:2014-12-19 22:57:39
【问题描述】:
我正在使用 GetProcessMemoryInfo 和 PROCESS_MEMORY_COUNTERS 获取进程内存使用情况,我想比较谁的使用量最大。
我正在尝试使用std::<list> 来创建我的<list> 和SIZE_T 类型。
我添加这样的元素:
list<SIZE_T> sizes;
PROCESS_MEMORY_COUNTERS info = { 0 };
info.cb = sizeof(info);
GetProcessMemoryInfo(process, &info, sizeof(info));
sizes.push_back(info.WorkingSetSize);
并找到最大的:
SIZE_T temp = 0;
for (SIZE_T i = 0; i < sizes.size(); ++i){
if (sizes[i] > temp){
temp = sizes[i];
}
}
还是我用错了?
泰 * 这里不要说我不能做 SIZE_T (http://www.cplusplus.com/reference/list/list/)
【问题讨论】:
-
您是否收到编译器错误,或者您有什么问题?你真的有
std::<list>吗? (好的,现在真正的定义添加了,忘了最后一部分) -
SIZE_T是什么?你是说size_t吗? -
Error 1 error C2676: binary '[' : 'std::list
>' 未定义此运算符或转换为预定义可接受的类型操作员。我使用 SIZE_T 因为这里说 WorkingSetSize 是 SIZE_T msdn.microsoft.com/en-us/library/windows/desktop/… -
@Júlio 嗯,这是真的。它不是数组等,没有 [] 实现。如果您真的想保留该列表,请参阅stackoverflow.com/questions/5733842/…。
-
也许你想要一个
vector代替?