编译时我收到错误
category.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
// get selected item using position argument
Item selectedItem = list.get(position);
// your code
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
g ++ div.cpp -std = c ++ 11 -pthread
#include<iostream>
#include<thread>
#include<vector>
using namespace std;
int a=100;
void div()
{
if(a!=0) int div1 = 100/a;
}
void assign()
{
a=0;
}
int main()
{
vector<thread> Threads;
for(int i=0;i<100;i++)
{
Threads.push_back(thread(div));
Threads.push_back(thread(assign));
}
}
我无法理解这里的问题是什么?
答案 0 :(得分:2)
div
中有一个名为<cstdlib>
的标准函数。 div
是一个C函数,因此允许将其放在全局命名空间中。编译器不知道要使用哪个div
。
您通过程序中使用的系统头之一间接包含<cstdlib>
,因为C ++标头可能包含其他C ++标头。
您不应该尝试定义与C标准库冲突的名称。重命名div
函数,或使用自己的命名空间。
此外,建议使用emplace_back
代替push_back
:
Threads.emplace_back(div);
这会直接创建线程并避免创建临时并从中移动。
此外,不建议使用using namespace std;
,因为这会将整个C ++标准库带到作用域,这可能会使您的程序遇到类似这样的冲突。