2013-03-20 2 views
0

Мне нужно мнение, а также как это можно сделать на C++. У меня есть плоский файл, который имел отображение, как показано нижечтение плоских файлов в C++

Number Some text 
1   Apple 
2   Orange 
3   Grape 

Have можно реализовать логику в C++, так что в моем коде, когда я enconter значения скажет, 1 я могу Геч ценностные Thats отображенных против него, т.е. Apple, в этот случай. У меня есть стандартные структуры данных, которые можно использовать для этого. Можете ли вы указать мне некоторые примеры кода для них.

+6

[ 'станд :: Карта '] (http://en.cppreference.com/w/cpp/container/map) – WhozCraig

+1

Или 'станд :: unordered_map 'или (если числа всегда смежные) просто' std :: vector '. –

+0

Ваш вопрос касается * чтения * данных или * хранения * их? – Spook

ответ

0

Есть ли у меня стандартные данные, которые могут быть использованы для этого?

В стандартной библиотеке вы можете использовать std::map в комбинации int для идентификаторов и std::string для текста.

Ваш std::map можно инициализировать и использовать следующим образом:

#include <map> 
#include <string> 

std::map<int, std::string> m; 
m[1] = "Apple"; 
m[2] = "Orange"; 
m[3] = "Grape"; 

Это хорошо, чтобы указать на то, что если ваши показатели всегда соприкасаются, и вы делаете их начать 0 вы могли бы просто использовать std::vector, которые, возможно, лучше подходит вашим целям ?

#include <vector> 
#include <string> 

std::vector<std::string> v; 
v.push_back("Apple"); 
v.push_back("Orange"); 
v.push_back("Grape"); 

v[0]; // Apple 
v[1]; // Orange 
v[2]; // Grape 
Смежные вопросы