我需要有关C ++向量的帮助。我有一个具有两个属性的对象,两个属性都是常量引用(这意味着我没有该类的空构造函数)。我需要使用其中一些对象创建一个向量,并需要根据其中一个属性的值对它们进行排序(特别是otherObj属性,该类具有所有运算符的重载)。
我遇到了麻烦,因为当我尝试在向量上执行简单的std :: sort时,我认为它会尝试使用空构造函数创建该类的另一个对象来交换这些对象,所以我不知道去做。
我粘贴了一个示例代码,说明了我基本上是如何拥有这些对象的(我可能犯了一些错误)
class Object{
const OtherObject& otherObj;
const int& myInt;
Object(const OtherObject& o, const int& i){
this->otherObj = o;
this->myInt = i;
}
};
void myFunction(std::vector<OtherObject>& vec){
int i1 = 1;
int i2 = 2;
int i3 = 3;
Object obj1(vec.at(0), i1);
Object obj2(vec.at(1), i2);
Object obj3(vec.at(2), i3);
std::vector<Object> myVec {obj1, obj2, obj3};
//Sort the vector here
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个Select包含一系列通过列表映射的自定义项的组件。每个项目都有一个特定的类型,并且根据该类型,菜单项将具有特定的 MUI 图标。我创建了一个用于管理整个Select组件的特定组件和另一个用于显示每个项目、其值及其图标的特定组件。问题是,onChange每当我单击其中一项时,该功能都不会触发。问题可能是什么?
我附上我正在做的事情的代码。
const myTypes = {
TYPE_1: "Type 1",
TYPE_2: "Type 2",
TYPE_3: "Type 3",
};
function TypeSelect(props) {
const classes = useStyles();
const [state, setState] = useState(myTypes.TYPE_1);
const onChangeType = (e) => {
setState(e.target.value);
};
return (
<Select
id="select-type"
value={state}
onChange={onChangeType}
>
{Object.keys(myTypes).map((type) => (
<TypeSelectMenuItem
type={myTypes[type]}
key={type}
/>
))}
</Select>
);
}
function TypeSelectMenuItem({ type }) {
const renderIcon = () => {
switch (type) {
case myTypes.TYPE_1:
return <ShortTextIcon …Run Code Online (Sandbox Code Playgroud)