我有一个名为months
的向量,其中包含一遍又一遍的数字1-12。这些数字是从文件中读取的。我怎样才能使它在这个特定的向量中数字1 =" 1月",2 =" 2月",3 =" 3月"等,以便在使用cout<<月[3]<< ENDL;它将输出" March"例如,而不是整数?
答案 0 :(得分:1)
使用常量月份名称并在必要时访问它们对我来说更有意义。存储在months
中的索引范围为1到12,因此我们需要从索引中减去1才能访问正确的月份:
std::string month_names[] = {
"January",
"February",
// ...
};
// ... Get the month indices from a file ...
std::cout << month_names[months[3] - 1] << std::endl;
答案 1 :(得分:1)
您可以使用std::map
将数字与字符串相关联。
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main()
{
std::map<int, std::string> Month = {{1,"January"}, {2,"February"}, {3,"March"} /* etc */ };
cout << Month[3] << endl;
}
输出:
March
答案 2 :(得分:0)
定义具有月份名称的字符串文字数组就足够了,并使用向量的元素作为此数组的索引。例如
const char *month_name[] =
{
"January", "February", "March", /*...*/ "December"
};
std::cout << month_name[ months[i] - 1] << std::endl;
或者
const char *month_name[] =
{
"", "January", "February", "March", /*...*/ "December"
};
std::cout << month_name[ months[i] ] << std::endl;
其中months [i]是索引为i的向量的元素。