string转换成int乘权求和 C++
时间: 2023-07-17 19:04:39 浏览: 74
在C++中,你可以使用以下代码将字符串转换为整数,并乘以权重求和:
```cpp
#include <iostream>
#include <string>
#include <vector>
int stringToIntMultiplySum(const std::string& str, const std::vector<int>& weights) {
// 确保字符串和权重向量长度相等
if (str.length() != weights.size()) {
return -1; // 返回错误值或抛出异常,表示长度不匹配
}
int result = 0;
for (int i = 0; i < str.length(); i++) {
// 将字符转换为对应的数字
int num = str[i] - '0';
// 乘以权重并求和
result += num * weights[i];
}
return result;
}
int main() {
std::string str = "123";
std::vector<int> weights = {1, 2, 3};
int result = stringToIntMultiplySum(str, weights);
std::cout << result << std::endl; // 输出:14
return 0;
}
```
在上面的代码中,我们定义了一个名为 `stringToIntMultiplySum` 的函数,它接受一个字符串和一个整数向量作为参数。函数内部使用循环遍历字符串的每个字符,并将其转换为对应的数字。然后,乘以权重并将结果累加到变量 `result` 中。最后返回 `result`。
在主函数中,我们定义了一个示例字符串 "123" 和一个权重向量 {1, 2, 3}。调用 `stringToIntMultiplySum` 函数并将结果打印出来。
请注意,上述代码假设输入的字符串只包含数字字符,并且字符串和权重向量的长度相等。你可以根据需要进行修改和适应。