大师, 我正在尝试初始化一个巨大的向量>但没有出现以下错误:
在抛出' std :: bad_alloc'
的实例后终止调用 what():std :: bad_alloc Aborted
以下是初始化的方式:
vector<vector< int >> result(k, vector<int> (prices.size() + 1, 0)) ;
完整代码:
class Solution {
public:
int maxProfit(int k, vector<int>& prices) {
int sz = prices.size();
vector<vector< int >> result(k, vector<int> (prices.size() + 1, 0)) ;
return 1;
}
};
int stringToInteger(string input) {
return stoi(input);
}
void trimLeftTrailingSpaces(string &input) {
input.erase(input.begin(), find_if(input.begin(), input.end(), [](int ch) {
return !isspace(ch);
}));
}
void trimRightTrailingSpaces(string &input) {
input.erase(find_if(input.rbegin(), input.rend(), [](int ch) {
return !isspace(ch);
}).base(), input.end());
}
vector<int> stringToIntegerVector(string input) {
vector<int> output;
trimLeftTrailingSpaces(input);
trimRightTrailingSpaces(input);
input = input.substr(1, input.length() - 2);
stringstream ss;
ss.str(input);
string item;
char delim = ',';
while (getline(ss, item, delim)) {
output.push_back(stoi(item));
}
return output;
}
int main() {
string line;
while (getline(cin, line)) {
int k = stringToInteger(line);
getline(cin, line);
vector<int> prices = stringToIntegerVector(line);
int ret = Solution().maxProfit(k, prices);
string out = to_string(ret);
cout << out << endl;
}
return 0;
}
以下是导致问题的输入1: https://text-share.com/view/2481b925
关于可能问题的任何指示都会有所帮助。
答案 0 :(得分:1)
尝试按max_size()
进行检查。该值通常反映容器大小的理论限制。
std::vector<int> TestVec;
std::cout << "Max elements to reserve: " << TestVec.max_size() << std::endl;