modify the value in pair<>
1 2 3 4 5
|
vector< pair<string, double> > var_map;
...here pushes pairs into var_map...
var_map.back().second = 4.3;
|
why can the last line not modify the value stored in the last element of
var_map
?
What is the right way to do that?
why can the last line not modify the value stored in the last element of var_map? |
It ought to.
What is the right way to do that? |
Looks ok to me, as long as the vector isn't empty.
This works for me:
1 2 3 4 5 6 7 8 9 10 11
|
#include <string>
#include <utility>
#include <vector>
#include <iostream>
int main() {
std::vector< std::pair< std::string, double > > var_map;
var_map.push_back( std::make_pair( std::string( "Hello" ), 3.14 ) );
var_map.back().second = 1.414;
std::cout << var_map.back().first << " -> " << var_map.back().second << std::endl;
}
|
Oh! I made a mistake somewhere else. :-(
Topic archived. No new replies allowed.