gpt4 book ai didi

c++ - mapvalue和迭代器c++的比较

转载 作者:行者123 更新时间:2023-11-30 03:57:30 29 4
gpt4 key购买 nike

我想知道是否有一种方法可以比较两个值是否相等。我有一个映射,其中键是 int,类型是一个类。我想找到一个特定的数字,看看它是否存在于 map 中,如果它存在,则应该执行特定的操作。

即:我有一个存储在我的 map 容器中的银行账户。我想更改该帐户的余额值。

我的 mapdeclaration 中的 int 是账号。

map<int, class>::iterator it;
map<int, class>::myMap;



void Deposit(){
int banknbr;
int amount;
cout << "What is your acc numb?" << endl;
cin >> bankNbr;
for(it = myMap.begin(); it != myMap.end(); it++){
if(it->first==myMap[bankNbr]){
cout << "How much money do you wish to deposit?" << endl;
cin >> amount;
deposit(); // balance = balance + amount;

或者类似的东西。如果我存储两个账户,我会覆盖第一个账户的余额。因此,如果第一个帐户的余额为 100,第二个帐户的余额为 200,而我想在第一个帐户中存入 100 美元,则我的值变为 300,这是不正确的。

我现在的代码是这样的:

void deposit(int number){
int amount;
for(it = myMap.begin(); it != myMap.end(); it++){
myMap.find(number);
if(it != myMap.end(){
cout << "How much money do you wish to deposit?"<<endl;
cin >> amount;
acc.deposit(amount); //acc is my own implemented class
cout << "Your balance is: " << acc.getBal(number) << endl; //get bal is return balance
}
}



}

最佳答案

可以使用mapfind方法来查找key是否存在。

如果键存在,find 方法返回一个迭代器,否则 map::end

it=mymap.find(number);
if(it!=myMap.end()){
//your code
}

您可以在此处找到此方法的更多详细信息 http://www.cplusplus.com/reference/map/map/find/

 //for(it = myMap.begin(); it != myMap.end(); it++){
it = myMap.find(number); //assign "it"
if(it != myMap.end(){
cout << "How much money do you wish to deposit?"<<endl;
cin >> amount;
acc.deposit(amount); //acc is my own implemented class
cout << "Your balance is: " << acc.getBal(number) << endl; //get bal is return balance
}
// }

关于c++ - mapvalue和迭代器c++的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27922039/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com