向量中对元素的数据类型是什么?
What is the data type of pair's element in vector?
我需要临时声明 firstElement from 对在向量中
vector<pair<char*, int> > rezVector; //is vector I'm using
auto tempPair = rezVector[0].first; //Is solution I got, but my teacher won't accept (I must know data type)
我已经试过了
char tempPair;
char* tempPair;
char tempPair[20];
编辑对于那些想知道我如何使用它的人:
sort(rezVector.begin(), rezVector.end(), compareFn);
char*& tempPair = rezVector[0].first; //Already with solution
for(int i=0; i<m; i++){
for(int j=i+1; j<m-1; j++){
if(rezVector[i].second == rezVector[j].second){
if(strcmp(rezVector[i].first, rezVector[j].first)>0){
tempPair = rezVector[i].first;
rezVector[i].first = rezVector[j].first;
rezVector[j].first = tempPair;
}
}
}
}
你的老师可能会期待各种各样的事情,包括
char * temp = rezVector[0].first;
char *& temp = rezVector[0].first;
const char * temp = rezVector[0].first;
std::string temp = rezVector[0].first;
std::string_view temp = rezVector[0].first;
您必须询问他们temp
的预期目的,以了解他们正在寻找的答案(如果有的话)。
访问一对的.first
实际上会为您提供对相应条目的引用,这样rezVector[0].first
将具有类型 char*&
。这允许您更改 rezVector[0].first
的内容,如果您真的想这样做。但是你也可以将rezVector[0].first
的结果分配给类型为 char*
的对象,这样你就可以得到引用值的副本。
所以我认为选择正确的类型取决于你想用结果做什么。您是要就地更改该对的内容,还是只想复制信息?
请参阅以下示例中的区别:
int main() {
char val1[] = "Hello";
char val2[] = "World";
char val3[] = "out there";
vector<pair<char*, int> > rezVector; //is vector I'm using
rezVector.push_back({val1,10});
cout << "initial: " << rezVector[0].first << std::endl;
char*& tempPairFirstReadWrite = rezVector[0].first;
tempPairFirstReadWrite = val2;
cout << "changed: " << rezVector[0].first << std::endl;
char* tempPairFirstReadOnly = rezVector[0].first;
tempPairFirstReadOnly = val3;
cout << "not changed again: " << rezVector[0].first << std::endl;
}
输出:
initial: Hello
changed: World
not changed again: World
相关文章:
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- 如何声明一个标准::提升直方图的向量?提升直方图的类型是什么?
- RSA_verify中预期的数据类型是什么,无法验证从 Java 生成的签名
- 字符串中单个字符作为数组的数据类型是什么
- 如果我获得Integer和Double的产品,输出的数据类型是什么
- 通过插座发送的内容的数据类型是什么
- 向量中对元素的数据类型是什么?
- 对应于 AS3 编号(整数)的C++数据类型是什么?
- C++中字符串文字的数据类型是什么
- C++什么数据类型是thread_id,它能分配给变量吗
- Streamsize,Streamoff和其他与流相关的数据类型的实际类型是什么
- 什么数据类型是 16 位操作系统中的 32 位和 32 位操作系统中的 64 位
- C++ 中双引号内的字符串的数据类型是什么
- 将 c++ dll 导入 vb.net 时 float*(图像类型)的等效数据类型是什么?
- C++中最大的数据类型是什么
- C和c++中内置数据类型的类型是什么?
- c++中的布尔数据类型是什么?
- 读取纳秒值的数据类型是什么?
- vptr的数据类型是什么
- C++中字符串文字的数据类型是什么