我对编程有些新意,当人们搜索某些东西时,我正在制作一个过滤器。我用Code :: Blocks编写代码。 举个例子,我拿了一些小宠物:
Ivysaur
Venusaur
Charmander
Charmeleon
Charizard
Squirtle
Wartortle
Blastoise
Caterpie
Metapod
我想将这些小宠物中的每一个添加到我的变量“vector string pokeList”中。
vector<string> pokeList;
pokeList.push_back("Bulbasaur");
Ivysaur
Venusaur
Charmander
Charmeleon
Charizard
Squirtle
Wartortle
Blastoise
Caterpie
Metapod
如何添加“pokeList.push_back(”“);”对于每一行而不是“手动”,因为“手动”添加700个小精灵真的很长... PS:我不想用里面的列表创建一个.txt文件。
Thnaks。
答案 0 :(得分:2)
如果Code :: Blocks使用的是足够现代的编译器,则可以通过使用该语言中的较新功能来解决此问题,而无需IDE技巧。在C ++ 11中,您的示例可以写为:
auto pokeList = vector<string>{
"Bulbasaur",
"Ivysaur",
"Venusaur",
"Charmander",
"Charmeleon",
"Charizard",
"Squirtle",
"Wartortle",
"Blastoise",
"Caterpie",
"Metapod"
};
答案 1 :(得分:2)
你从哪里获得口袋妖怪名单?如果您有一个包含所有名称的文件,您只需阅读该文件:
#include <vector>
#include <string>
#include <iostream>
#include <fstream>
int main()
{
std::vector<std::string> pokeList;
std::ifstream pokeFile("your file path/name here");
if (pokeFile.is_open())
{
std::string str;
while (std::getline(pokeFile, str))
{
pokeList.push_back(str);
}
} else
{
std::cout << "Unable to open file";
}
}
现在您可以从外面编辑列表。
p.s建议不要在代码中放置这样的大型静态列表,更容易将它放在单独的文件中。
答案 2 :(得分:0)
您可以使用指向这些字符串文字的指针创建一个静态数组,并使用它来初始化该向量。例如
#include <vector>
#include <string>
#include <iterator>
const char * pokemons[] =
{
"Ivysaur",
"Venusaur",
/* other pokemons */
"Metapod"
};
int main()
{
std::vector<std::string> pokeList( std::begin( pokemons ), std::end( pokemons ) );
}
您可以将数组定义放在单独的头文件中。