初始化 pair<int, std::vector<string>>类型
时间: 2023-08-11 08:04:14 浏览: 89
要初始化一个 `pair<int, vector<string>>` 类型的变量,可以使用以下语法:
```cpp
std::pair<int, std::vector<std::string>> myPair = { 42, { "hello", "world" } };
```
这将创建一个整数为 42,字符串向量为 { "hello", "world" } 的 `pair` 对象。其中,花括号 `{}` 表示初始化列表,可以用来初始化 `pair` 对象的成员。
相关问题
#include <iostream> #include <map> #include <vector> #include <algorithm> void brotherWord(std::vector<std::string> strVect, std::string word, int k) { std::multimap<std::string, int> rtnMap; //存放是兄弟单词的容器 std::vector<std::string>::iterator iter = strVect.begin(); while(iter != strVect.end()) { std::string curWord = *iter; if(curWord != word) //兄弟单词不能一模一样 { std::string tempword = word; std::sort(tempword.begin(), tempword.end()); std::string tempcurword = curWord; std::sort(tempcurword.begin(), tempcurword.end()); if(tempcurword == tempword) //是兄弟单词 { rtnMap.insert(std::pair<std::string, int>(curWord, 1)); } } iter++; } // print(rtnMap); std::vector<std::string> rtnVect; std::multimap<std::string, int>::iterator iterMap = rtnMap.begin(); while(iterMap != rtnMap.end()) { rtnVect.push_back(iterMap->first); iterMap++; } std::cout << rtnVect.size() << std::endl; if(rtnVect.size() > 1) std::cout << rtnVect[k-1] << std::endl; } int main() { int n; std::cin >> n; std::vector<std::string> strVect; while(n--) { std::string temp; std::cin >> temp; strVect.push_back(temp); } std::string word; std::cin >> word; int k; std::cin >> k; brotherWord(strVect, word, k); return 0; }翻译
这段代码是一个兄弟单词查找程序。
它包括了一些头文件的引入,如iostream、map、vector和algorithm。
函数brotherWord接受三个参数:一个字符串向量strVect,一个字符串word和一个整数k。
在函数中,首先定义了一个multimap容器rtnMap,用于存放兄弟单词。然后使用迭代器iter遍历strVect中的每个单词。
在每次迭代中,将当前单词curWord与word进行比较。如果它们不相同,则将它们分别进行排序,并比较排序后的结果。如果它们相等,则将curWord插入到rtnMap中。
接下来,定义了另一个字符串向量rtnVect,并使用迭代器iterMap遍历rtnMap中的每个元素。在每次迭代中,将迭代器指向的key(即兄弟单词)添加到rtnVect中。
最后,输出rtnVect的大小,并且如果rtnVect的大小大于1,则输出第k个单词。
在主函数main中,首先读取一个整数n,并初始化一个空的字符串向量strVect。然后使用循环读取n个单词,并将它们依次添加到strVect中。
接着读取一个单词word和一个整数k,并调用brotherWord函数进行兄弟单词查找。
最后,返回0表示程序正常结束。
指定位置 访问 std::vector<std::pair<std::string, int>>
在C++中,`std::vector<std::pair<std::string, int>>`是一个动态数组,其中存储的是键值对,键是字符串类型(`std::string`),值是整数类型(`int`)。如果你想要访问这个向量中的特定元素,你可以通过索引来定位指定的位置。
例如,如果你想获取第i个键值对,可以这样做:
```cpp
std::vector<std::pair<std::string, int>> vec; // 假设vec已经初始化
// 获取第i个元素的key和value
auto pairAtI = vec[i];
std::string key = pairAtI.first;
int value = pairAtI.second;
```
这里,`pairAtI`是一个引用到`std::pair`类型的元素,你可以直接通过`.`操作符获取`first`(键)和`second`(值)成员。
阅读全文