C++,结构矢量填充
C++, Struct Vector Filling
我在填写结构向量时遇到问题:
这是结构:
struct indx{
int inK;
char* surn;
indx(int k, char* s) : inK(k), surn(s) {}
indx(){}
indx(indx *ind) : inK((*ind).inK), surn((*ind).surn){}
};
std::vector <indx> indexvec;
这是填充功能:
void Menu::sortIndex(){
//Preparacion del fichero indices
for (int i = 0; i < ag.getArrSize(); i++){
indexvec.emplace_back(new indx(i, ag.getPersona(i).getSurname()));
}
//Ordenacion del fichero indices
std::sort(indexvec.begin(), indexvec.end(), menor_surn());
}
问题是当填充indexvec[0].surn
中的向量与indexvec[1].surn
相同时。我已经检查过ag.getPersona(0).getSurename
和ag.getPersona(1).getSurename
不一样。
解决方案
void Menu::sortIndex(){
//Preparacion del fichero indices
for (int i = 0; i < ag.getArrSize(); i++){
char *s1 = new char[strlen(ag.getPersona(i).getSurname())];
strcpy(s1, ag.getPersona(i).getSurname());
indexvec.emplace_back(new indx(i, s1));
}
//Ordenacion del fichero indices
std::sort(indexvec.begin(), indexvec.end(), menor_surn());
}
这是我的第一篇文章,对我的错误感到抱歉。
相关文章:
- 使用结构成员指针在C++中填充结构
- C++:使用缓冲区中的数据填充结构
- 用二进制文件填充结构
- 如何使用文件填充结构(下面附有的代码)?
- 使用 snprintf 填充结构
- 使用来自函数的指针填充结构数组
- 使用循环填充结构
- C 从文件中填充结构数组
- C 如何从UCHAR数组中填充结构的位字段
- 如何有效地用向量填充结构
- 避免在C 中填充结构
- 如何填充结构的向量
- C/C++ 从字符缓冲区读取以填充结构
- 从 std::vector<无符号字符中的数据填充结构>
- 从矢量中擦除元素,并向量填充结构
- 结构错误的构造函数(调用类的构造函数 denconstructor,用于填充结构)
- 有没有办法用较短的代码来填充结构
- 填充结构,同时查找min_element,C++
- 在函数中填充结构映射的最好方法是什么?
- 当编译器决定填充结构时